gpt4 book ai didi

python - 根据条件在 Python 中连接两个表

转载 作者:太空宇宙 更新时间:2023-11-04 02:28:17 25 4
gpt4 key购买 nike

<分区>

我在 pandas 中有两个表:

df1:包含 15 万用户的用户 ID 和 IP_地址。

|---------------|---------------|  
| User_ID | IP_Address |
|---------------|---------------|
| U1 | 732758368.8 |
| U2 | 350311387.9 |
| U3 | 2621473820 |
|---------------|---------------|

df2:包含IP地址范围和所属国家,139K条记录

|---------------|-----------------|------------------|  
| Country | Lower_Bound_IP | Upper_Bound_IP |
|---------------|-----------------|------------------|
| Australia | 1023787008 | 1023791103 |
| USA | 3638734848 | 3638738943 |
| Australia | 3224798976 | 3224799231 |
| Poland | 1539721728 | 1539721983 |
|---------------|-----------------|------------------|

我的目标是在 df1 中创建一个国家/地区列,使 df1 的 IP_Address 位于 df2 中该国家/地区的 Lower_Bound_IP 和 Upper_Bound_IP 范围之间。

|---------------|---------------|---------------|   
| User_ID | IP_Address | Country |
|---------------|---------------|---------------|
| U1 | 732758368.8 | Indonesia |
| U2 | 350311387.9 | Australia |
| U3 | 2621473820 | Albania |
|---------------|---------------|---------------|

我的第一个方法是对两个表进行交叉连接(笛卡尔积),然后过滤到相关记录。但是,使用 pandas.merge() 进行交叉连接是不可行的,因为它将创建 210 亿条记录。代码每次都崩溃。您能否提出一个可行的替代解决方案?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com