Python 使用pandas concat组合两个数据帧时如何删除重复项
我有两个数据来自 带列的df1:id、x1、x2、x3、x4、.xn 带列的df2:id,yPython 使用pandas concat组合两个数据帧时如何删除重复项,python,pandas,concat,Python,Pandas,Concat,我有两个数据来自 带列的df1:id、x1、x2、x3、x4、.xn 带列的df2:id,y df3=pd.concat([df1,df2],轴=1) 当我用熊猫海螺把它们组合起来时,它变成了 id,y,id,x1,x2,x3…xn 这里有两个身份证。我怎样才能去掉一个 我试过: df3=pd.concat([df1,df2],axis=1)。删除重复项()。重置索引(drop=True) 但不起作用。数据帧连接在索引上。在连接之前,确保id是索引: df3 = pd.concat([df1.s
df3=pd.concat([df1,df2],轴=1)
当我用熊猫海螺把它们组合起来时,它变成了
id,y,id,x1,x2,x3…xn
这里有两个身份证。我怎样才能去掉一个
我试过:
df3=pd.concat([df1,df2],axis=1)。删除重复项()。重置索引(drop=True)
但不起作用。数据帧连接在索引上。在连接之前,确保
id
是索引:
df3 = pd.concat([df1.set_index('id'),
df2.set_index('id')], axis=1).reset_index()
或者,最好使用join
:
df3 = df1.join(df2, on='id')
删除重复项()
仅删除完全相同的行
您要查找的是pd.merge()
pd.merge(df1,df2,on='id)
非常感谢。第一个有效。第二个显示“您正在尝试合并object和int64列。如果您希望继续,您应该使用pd.concat”。显然,两个数据帧中的id
列具有不同的数据类型:一个是字符串,另一个是数字。它们看起来可能一样,但事实并非如此。使用.astype()
将它们转换为相同的数据类型。