Python 熊猫';merge返回一个列,该列的名称后面附加了x
我需要数据帧,df1有A,B,C,D列。。。df2有A列,B列,E列,F列 我想要合并的键在A列中。B在两个数据帧中也(很可能)相同。虽然这是一个大数据集,但我正在进行清理,因此我还没有对所有内容都有一个非常好的概述 我知道 结果包含一个名为B_x的列。由于数据集又大又乱,我没有尝试研究B_x与df1中的B和df2中的B有何不同 因此,我的问题只是一般性的:Pandas将x附加到合并数据帧中的列名后意味着什么Python 熊猫';merge返回一个列,该列的名称后面附加了x,python,pandas,Python,Pandas,我需要数据帧,df1有A,B,C,D列。。。df2有A列,B列,E列,F列 我想要合并的键在A列中。B在两个数据帧中也(很可能)相同。虽然这是一个大数据集,但我正在进行清理,因此我还没有对所有内容都有一个非常好的概述 我知道 结果包含一个名为B_x的列。由于数据集又大又乱,我没有尝试研究B_x与df1中的B和df2中的B有何不同 因此,我的问题只是一般性的:Pandas将x附加到合并数据帧中的列名后意味着什么 谢谢对于合并操作中未涉及的列名中的任何冲突,将添加后缀,请参见 因此,在您的情况下,如
谢谢对于合并操作中未涉及的列名中的任何冲突,将添加后缀,请参见 因此,在您的情况下,如果您认为它们是相同的,您可以对两列进行合并:
pd.merge(df1, df2, on=['A', 'B'])
不过,这将只返回两个数据帧中都存在A
和B
的值,因为默认的合并类型是内部
合并
因此,您可以将此合并的df大小与第一个df大小进行比较,看看它们是否相同,如果相同,您可以对两列进行合并,或者只删除/重命名\ux
/\uy
后缀B
列
我会花时间确定这些值是否确实相同,是否存在于两个数据帧中,在这种情况下,您可能希望执行outer
合并:
pd.merge(df1, df2, on=['A', 'B'], how='outer')
然后,您可以做的是删除重复的行(可能还有任何NaN
行),这将为您提供一个干净的合并数据帧
merged_df.drop_duplicates(cols=['A', 'B'],inplace=True)
有关详细信息,请参阅联机文档
merged_df.drop_duplicates(cols=['A', 'B'],inplace=True)