我有一个带有'State'
的表,并且关联IP CIDR范围与该状态关联
表A
--------------------------------------------------
| ID | State | IP_subnet |
--------------------------------------------------
| 1 | CA | 192.168.1.0/24 |
--------------------------------------------------
| 2 | TX | 172.68.7.0/24 |
--------------------------------------------------
| 3 | NY | 61.141.47.0/24 |
--------------------------------------------------
我想遍历下表,并将IP
字段与IP_subnet
字段进行匹配
表B
| ID | IP |
--------------------------------------
| 1 | 61.141.47.1 |
--------------------------------------
| 2 | 192.168.1.48 |
--------------------------------------
| 3 | 172.68.7.124 |
--------------------------------------
| 4 | 40.32.123.212 |
--------------------------------------
下面是我想要的结果:(将关联的State
与IP
匹配)
| ID | IP | State |
--------------------------------------------------
| 1 | 61.141.47.1 | null |
--------------------------------------------------
| 2 | 192.168.1.48 | CA |
--------------------------------------------------
| 3 | 172.68.7.124 | TX |
--------------------------------------------------
| 4 | 40.32.123.212 | NY |
--------------------------------------------------
我知道下面的代码适用于1个值。如何在IPs
列中对另一列进行迭代
from ipaddress import IPv4Address, IPv4Network
IPv4Address('172.68.7.124') in IPv4Network('172.68.7.0/24')
供参考
数据=[[1',加利福尼亚州',[192.168.1.0/24',[2',德克萨斯州',[172.68.7.0/24',['juli',14],[3,纽约州,61.141.47.0/24]]
df=pd.DataFrame(数据,列=['ID','State','IP\u subnet'])
首先使用2个数据帧查找每个IP的状态,然后基于此字典数据创建新列并加载到原始df中
我认为它可以用更紧凑的方式来完成,但它仍然可以完成任务
输出:
相关问题 更多 >
编程相关推荐