我可以帮您将以下两个数组进行合并,通过在数组B中查找数组A的值来实现。
数组A:
array([['GG', 'AB', IPv4Network('1.2.3.41/26')],
['GG', 'AC', IPv4Network('1.2.3.42/25')],
['GG', 'AD', IPv4Network('1.2.3.43/24')],
['GG', 'AE', IPv4Network('1.2.3.47/23')],
['GG', 'AF', IPv4Network('1.2.3.5/24')]],
dtype=object)
以及数组B:
array([['123456', 'A1', IPv4Address('1.2.3.5'), nan],
['987654', 'B1', IPv4Address('1.2.3.47'), nan]],
dtype=object)
这里的目标是通过在Array A中查找IPv4Address并将其与Array B进行比较,获取相应数组的第二个值并将其存储,以创建Array C:
Array C:
array([['123456', 'A1', IPv4Address('1.2.3.5'), nan, 'AF'],
['987654', 'B1', IPv4Address('1.2.3.47'), nan, 'AE']],
dtype=object)
IP地址的类型如下:https://docs.python.org/3/library/ipaddress.html#ipaddress.ip_network
我该如何实现这个?
编辑:
请注意,合并是基于IP匹配条件进行的,因此生成的数组C将与数组B具有相同数量的数组,但它将多一个值。建议的重复链接没有回答相同的问题。
2 ** 32
,但IPv4的/length最多具有32个值--最好进行32次查找,例如:1.2.3.5 -> 0b1000000100000001100000101 -> 0b1000000100000001100000100 -> 0b1000000100000001100000100 -> 0b1000000100000001100000000 -> ....
。 - Dima Tisnek