如何使用pandas concat合并两个数据框时删除重复项

时间:2019-09-23 22:18:51

标签: python pandas concat

我有两个数据。

df1,其列为:id,x1,x2,x3,x4,.... xn

df2,其列为:id,y。

df3 =pd.concat([df1,df2],axis=1)

当我用pandas concat组合它们时,它变成了

id,y,id,x1,x2,x3...xn

这里有两个id。如何摆脱一个。

我尝试过:

df3=pd.concat([df1,df2],axis=1).drop_duplicates().reset_index(drop=True)

但不起作用。

2 个答案:

答案 0 :(得分:0)

DataFrames串联在索引上。串联之前,请确保id是索引:

df3 = pd.concat([df1.set_index('id'), 
                 df2.set_index('id')], axis=1).reset_index()

或者,更好的是,使用join

df3 = df1.join(df2, on='id')

答案 1 :(得分:0)

drop_duplicates()仅删除完全相同的行。

您要寻找的是pd.merge()

pd.merge(df1, df2, on='id)