我有两个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
)的网络的最佳方法是什么?参考表不必是数据框。只要易于引用信息,任何数据结构都可以。有什么建议吗?
谢谢。
要实现此目标,您可以将network
和ip_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
。