Merge()两个没有公共列的数据框(LARGE DATASET,所以没有fake_key = 1)

时间:2018-07-05 13:30:37

标签: python

RIPE功能

       start_decimal_ip  end_decimal_ip  isSL  ...    isSUBNET  isINTERNET  isISP
0          621457152       621457663     1  ...           0           1      0
1         3273214112      3273214143     0  ...           0           0      0
2         1280513280      1280513535     1  ...           1           0      0
3         3581584960      3581584975     0  ...           0           0      0
4         3564859176      3564859179     1  ...           0           0      0
5         1049781248      1049782271     1  ...           0           0      0
6         3262479184      3262479194     0  ...           0           0      0

IPS数据

   target             ip  decimal_ip
0      1    62.184.112.1  1052274689
1      1     194.30.89.1  3256768769
2      1  194.117.123.83  3262479187
3      1  195.235.249.73  3287021897

问题描述

我想将两个数据框,一个表( ips_data )与IP,十进制格式的IP,目标(无论是否为isp)进行组合。另一个表( ripe_features )具有IP范围的起点和终点(十进制),以及多个值。我的目标是在 ips_data 的IP在范围内时获取 ripe_features 的值。我做了一个第一次尝试,创建了_fake_key = 1_,但是我的 ripe_features 数据库很大(超过400万行),所以这种方法似乎不健康。

我想知道是否有更好的方法来避免这种合并。我正在考虑在 ripe_features 中使用for()循环为开始/结束范围内的每个IP新建一个列表/列“ ip”,以返回IP,否则返回null,然后进行合并使用on ='ip'。

预期产量

target,ip,isSL,isSA,isADSL,isDSL,isWIFI,isHOTSPOT,isBLOCK,isSUBNET,isINTERNET,isISP
1,194.117.123.83,0,1,0,0,0,0,0,0,0,0
1,195.55.122.48,1,0,0,0,0,0,0,0,0,0
1,37.15.99.177,0,0,1,0,0,0,0,0,0,1

0 个答案:

没有答案