在两个大熊猫数据框之间交叉引用



我有两个dataframes。第一个包含所有主要数据,每行都如下:

timestamp|source_ip|destination_ip|number_packets|number_bytes|etc.

第二个包含IP地址的参考表和这些地址的网络属于:

network1|ip_address1
network1|ip_address2
network2|ip_address3
etc.|etc.

它可能包含带有bumbast的网络地址,例如:

network3|ip_network/submask

那么,DataFrame 1在DataFrame 2中找到网络(例如source_ip)的网络的最佳方法是什么?参考表不必是数据框。只要易于引用信息,任何数据结构都可以。有什么建议吗?

谢谢。

要实现此目标,您可以将networkip_address的映射存储在字典中:

mapping = { ip_address1: network1,
            ip_address2: network1,
            ip_address3: network2,
            ... }

并找到与Main DataFrame source_ip条目相对应的network,请使用以下方式:

df['network'] = df['source_ip'].apply(lambda x: mapping[x])

这为您提供了其他列在主数据帧中的名为network,我们假设具有名称df具有source_ip

最新更新