根据同一列合并多个数据框 [英] Merge multiple dataframes based on a common column
本文介绍了根据同一列合并多个数据框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有三个数据框。它们都有一个公共列,我需要根据公共列合并它们,而不会丢失任何数据
I have Three dataframes. All of them have a common column and I need to merge them based on the common column without missing any data
输入
>>>df1
0 Col1 Col2 Col3
1 data1 3 4
2 data2 4 3
3 data3 2 3
4 data4 2 4
5 data5 1 4
>>>df2
0 Col1 Col4 Col5
1 data1 7 4
2 data2 6 9
3 data3 1 4
>>>df3
0 Col1 Col6 Col7
1 data2 5 8
2 data3 2 7
3 data5 5 3
预期输出
>>>df
0 Col1 Col2 Col3 Col4 Col5 Col6 Col7
1 data1 3 4 7 4
2 data2 4 3 6 9 5 8
3 data3 2 3 1 4 2 7
4 data4 2 4
5 data5 1 4 5 3
推荐答案
使用合并
和 reduce
In [86]: from functools import reduce
In [87]: reduce(lambda x,y: pd.merge(x,y, on='Col1', how='outer'), [df1, df2, df3])
Out[87]:
Col1 Col2 Col3 Col4 Col5 Col6 Col7
0 data1 3 4 7.0 4.0 NaN NaN
1 data2 4 3 6.0 9.0 5.0 8.0
2 data3 2 3 1.0 4.0 2.0 7.0
3 data4 2 4 NaN NaN NaN NaN
4 data5 1 4 NaN NaN 5.0 3.0
详细信息
Details
In [88]: df1
Out[88]:
Col1 Col2 Col3
0 data1 3 4
1 data2 4 3
2 data3 2 3
3 data4 2 4
4 data5 1 4
In [89]: df2
Out[89]:
Col1 Col4 Col5
0 data1 7 4
1 data2 6 9
2 data3 1 4
In [90]: df3
Out[90]:
Col1 Col6 Col7
0 data2 5 8
1 data3 2 7
2 data5 5 3
这篇关于根据同一列合并多个数据框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文