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

时间:2019-02-25 04:47:15

标签: python pandas dataframe

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

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)找到网络的最佳方法是什么?参考表不必是数据框。只要可以方便地参考信息,任何数据结构都可以。有什么建议吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

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

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

要从主数据框中找到与network的每个条目相对应的source_ip,请使用以下方法:

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

这会在主数据框中为您提供名为network的附加列,我们假设其名称为df,列为source_ip