[英]Cross reference between two Pandas dataframes
我有两个数据框。 第一个包含所有主要数据,每一行是这样的:
timestamp|source_ip|destination_ip|number_packets|number_bytes|etc.
第二个包含 IP 地址和这些地址所属的网络的参考表:
network1|ip_address1
network1|ip_address2
network2|ip_address3
etc.|etc.
可能它可能包含带有子掩码的网络地址,例如:
network3|ip_network/submask
那么数据帧 1 在数据帧 2 中查找其地址(例如source_ip
)的网络的最佳方法是什么? 参考表不必是数据框。 任何数据结构都可以,只要易于引用信息即可。 有什么建议?
谢谢。
首先,您可以将network
和ip_address
的映射存储在字典中:
mapping = { ip_address1: network1,
ip_address2: network1,
ip_address3: network2,
... }
要从主数据帧中找到与source_ip
每个条目相对应的network
,请使用以下命令:
df['network'] = df['source_ip'].apply(lambda x: mapping[x])
这为您提供了主数据框中名为network
附加列,我们假设该列的名称为df
,其中列source_ip
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.