我有两个数据帧,数据相似,如下所示:
示例表1:
device_id device_type ip_address mac_address port vlan
89 Router 10.10.10.13 ad3d.bb39.484a None 5.0
89 Router 10.10.10.21 0010.1d1a.7b67 None 5.0
89 Router 10.10.10.22 0010.4d5a.768d None 5.0
89 Router 10.10.10.23 0010.096a.7a8c None 5.0
样本表2:
device_id device_type mac_address port
305 Switch ad3d.bb39.484a Gi1/0/3
305 Switch 0010.1d1a.7b67 Gi1/0/4
305 Switch 0010.4d5a.768d Gi1/0/2
305 Switch 9a72.2dad.21f0 Gi1/0/22
我想合并这两个在Mac地址,这是目前完成的
temp_merged_data = arp_data.merge(mac_data, on='mac_address', how='left')
这提供了数据
device_id_x device_type_x ip_address mac_address port_x vlan device_id_y device_type_y port_y
89 Router 10.10.10.13 ad3d.bb39.484a None 5.0 305 Router Gi1/0/3
89 Router 10.10.10.21 0010.1d1a.7b67 None 5.0 305 Router Gi1/0/4
89 Router 10.10.10.22 0010.4d5a.768d None 5.0 305 Router Gi1/0/2
89 Router 10.10.10.23 0010.096a.7a8c None 5.0 305 Router Gi1/0/22
我想做的是合并列覆盖,优先开关。。。i、 e.如果存在一个Mac复制Mac地址,并且它有一个路由器和一个交换机作为设备类型,我想从交换机合并设备id、端口和设备类型,并从路由器删除数据。 如果不存在副本,则使用来自路由器的数据
这是用简单的逻辑实现的还是需要复杂的函数
您可以连接两个数据帧,按设备类型对其排序,然后为每个mac地址选取第一个条目:
相关问题 更多 >
编程相关推荐