我试图将两个数据帧合并在一起,以创建一个简洁的数据帧。第一个数据帧包含各种网络设备的所有可能名称。第二个数据帧包含实际存在的网络设备的名称,以及它们相应的硬件
我需要将这两个数据帧合并在一起,以便将第一个数据帧中的设备名称与第二个数据帧中存在的设备名称进行“检查”,然后吐出相应的硬件,以便稍后执行进一步的分析
下面是我正在进行的工作的简化说明:
print(df1)
Router_Name Firewall_Name
0 router1 firewall1
1 router2 firewall2
2 router3 firewall3
3 router4 firewall4
print(df2)
Device_Name Hardware_Platform
0 router2 cisco111
1 router3 cisco222
2 firewall1 cisco333
3 firewall2 cisco444
执行合并后,这将是我想要的结果:
print (df3)
Router_Name Hardware_Platform Firewall_Name Hardware_Platform
0 router1 N/A firewall1 cisco333
1 router2 cisco111 firewall2 cisco444
2 router3 cisco222 firewall3 N/A
3 router4 N/A firewall4 N/A
我尝试了许多命令,包括:
result = pd.concat([df1, df2], axis=1).reindex(df2.index)
print(result)
但这只会导致df1和df2相互叠加。使用这种方法可能吗
我就是这样管理的,它需要两次合并!请记住,使用相同名称的多个列是不利于良好实践的
输出:
我使用了下面的示例(重命名列有点麻烦),但是这个示例非常清楚。我使用您的示例数据帧作为输入文件。此外,我使用了两个左连接,并从hardware_platform列创建了两列
步骤1:创建数据帧
步骤2:第一次合并(路由器)
步骤3:第二次合并(防火墙)
相关问题 更多 >
编程相关推荐