如何使用熊猫基于列将两个数据框添加在一起?

时间:2019-05-02 12:41:20

标签: python pandas

我要总结两个数据框。

df1 =

authorId,quest1, quest2, quest3, ...
1, xxx, xxx, xxx, ...
2, xxx, xxx, xxx, ...
3, xxx, xxx, xxx, ...
...

df2 =

authorId,answer1, answer2, answer3, ...
1, yyy, yyy, yyy, ...
2, yyy, yyy, yyy, ...
3, yyy, yyy, yyy, ...
...

我想要

df3 = 

authorId,quest1, quest2, quest3, answer1, answer2, answer3, 
1, xxx, xxx, xxx, yyy, yyy, yyy, ...
2, xxx, xxx, xxx, yyy, yyy, yyy, ...
3, xxx, xxx, xxx, yyy, yyy, yyy, ...
...

我已经尝试过合并或加入(在内,左,右,外),但无法按预期工作。

df3 = df1.merge(df2, on='authorId', how='inner')

当我尝试加入时出现错误:

  

您正在尝试合并object和int64列。如果你想   继续,您应该使用pd.concat

1 个答案:

答案 0 :(得分:1)

您可以使用concat使用@ anky_91建议,也可以将authorID列转换为int。

df1['authorId'] = df1['authorId'].astype(int)
df2['authorId'] = df2['authorId'].astype(int)
df3 = df1.merge(df2, on='authorId', how='inner')

您可以检查数据框的dtypes,以查看两个DF中的authorID列是否为同一类型。

df1.dtypes
df2.dtypes