У меня есть два кадра данных в pandas.
import pandas as pd
inp1 = [{'network':'1.0.0.0/24', 'A':1, 'B':2}, {'network':'5.46.8.0/23', 'A':3, 'B':4}, {'network':'78.212.13.0/24', 'A':5, 'B':6}]
df1 = pd.DataFrame(inp)
print("df1", df1)
inp2 = [{'ip':'1.0.0.10'}, {'ip':'blahblahblah'}, {'ip':'78.212.13.249'}]
df2 = pd.DataFrame(inp2)
print("df2", df2)
Вывод:
network A B
0 1.0.0.0/24 1 2
1 5.46.8.0/23 3 4
2 78.212.13.0/24 5 6
ip
0 1.0.0.10
1 blahblahblah
2 78.212.13.249
Окончательный вывод, который я хочу, будет выглядеть следующим образом:
ip A B
0 1.0.0.10 1 2
1 blahblahblah NaN Nan
2 78.212.13.249 5 6
Я хочу перебрать каждую ячейку в df2['ip']
и проверить, принадлежит ли она к сети в df1['network']
. Если он принадлежит сети, он возвращает соответствующие столбцы A и B для указанного c IP-адреса. Я ссылался на эту статью и рассматривал netaddr, IPNetwork, IPAddress, ipaddress
, но не могу понять это.
Помощь оценена!