我有一个关于合并两个数据框的问题。 我有一个数据框,看起来像这样
>> print(df)
no value1 value2
0 a 0 -1
1 b -1 1
2 c -1 1
3 d 0 -1
4 e -1 -1
现在我有一个额外的数据框,看起来像这样
>> print(df2)
no value3 value4
0 a 1 -1
1 b 1 -1
2 e 1 -1
我想将第二个数据框的列“value3”和“value4”附加到第一个数据框,但仅在它们具有“no”列的匹配值的情况下。 所以最后我想要一个最终的数据框,看起来像这样:
>> print(df)
no value1 value2 value3 value4
0 a 0 -1 1 -1
1 b -1 1 1 -1
2 c -1 1 NaN NaN
3 d 0 -1 NaN NaN
4 e -1 -1 1 -1
有没有简单的解决方案来做到这一点?感谢您的帮助!
最佳答案
使用 pd.concat
和 set_index
让 Pandas 使用内部数据对齐。
pd.concat([df.set_index('no'),df2.set_index('no')], axis=1).reset_index()
输出:
index value1 value2 value3 value4
0 a 0 -1 1.0 -1.0
1 b -1 1 1.0 -1.0
2 c -1 1 NaN NaN
3 d 0 -1 NaN NaN
4 e -1 -1 1.0 -1.0
关于python - 我想将一个数据框附加到另一个数据框,即使它们的大小不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46673692/