我必须使用数据框, df1 列 A,B,C,D ... 和 df2 列 A ,B,E,F ......
我要合并的键位于 A 列中。 B 在两个数据帧中也(很可能)相同。虽然这是一个大数据集,但我正在进行清洁,所以我对所有内容都没有非常好的概述。
我做
merge(df1, df2, on='A')
结果包含一个名为B_x的列。由于数据集很大且很乱,我还没有尝试调查B_x与 df1 和 B 中 B 的区别> DF2
所以我的问题只是一般性的:当Pandas将_x附加到合并数据框中的列名时,它意味着什么?
谢谢
答案 0 :(得分:15)
为列名中与合并操作无关的任何碰撞添加后缀,请参阅online docs。
所以在你的情况下,如果你认为它们是相同的,你可以在两个列上进行合并:
pd.merge(df1, df2, on=['A', 'B'])
这样做只会返回两个数据框中都存在A
和B
的值,因为默认的合并类型是inner
合并。
所以你可以做的是将这个合并的df大小与你的第一个大小进行比较,看看它们是否相同,如果是,你可以在两个列上进行合并,或者只是删除/重命名_x
/ {{ 1}}后缀_y
列。
我会花时间确定这些值是否确实相同且存在于两个数据帧中,在这种情况下,您可能希望执行B
合并:
outer
然后你可以做的就是删除重复的行(可能还有任何pd.merge(df1, df2, on=['A', 'B'], how='outer')
行),这应该会给你一个干净的合并数据帧。
NaN
的在线文档