合并多个数据框 pandas [英] Merge multiple dataframe pandas
本文介绍了合并多个数据框 pandas 的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我尝试将多个新的dataFrame合并到一个主框架中. 假设主数据框:
I try to merge multiple new dataFrames in a main one. Suppose main dataframe:
key1 key2
0 0.365803 0.259112
1 0.086869 0.589834
2 0.269619 0.183644
3 0.755826 0.045187
4 0.204009 0.669371
然后我尝试将以下两个数据集合并到主要数据集中,
新数据1:
And I try to merge the 2 following datasets within the main one,
New data1:
key1 key2 new feature
0 0.365803 0.259112 info1
新数据2:
key1 key2 new feature
0 0.204009 0.669371 info2
预期结果:
key1 key2 new feature
0 0.365803 0.259112 info1
1 0.776945 0.780978 NaN
2 0.275891 0.114998 NaN
3 0.667057 0.373029 NaN
4 0.204009 0.669371 info2
我尝试过的事情:
test = test.merge(data1, left_on=['key1', 'key2'], right_on=['key1', 'key2'], how='left')
test = test.merge(data2, left_on=['key1', 'key2'], right_on=['key1', 'key2'], how='left')
第一个效果很好,但第二个效果不好:
Works well for the first one, but not for the second, the result I get:
key1 key2 new feature_x new feature_y
0 0.365803 0.259112 info1 NaN
1 0.776945 0.780978 NaN NaN
2 0.275891 0.114998 NaN NaN
3 0.667057 0.373029 NaN NaN
4 0.204009 0.669371 NaN info2
感谢您的帮助!
推荐答案
首先 append
或 concat
和merge
一起,然后merge
:
dat = pd.concat([data1, data2], ignore_index=True)
或者:
dat = data1.append(data2, ignore_index=True)
print (dat)
key1 key2 new feature
0 0.365803 0.259112 info1
1 0.204009 0.669371 info2
#if same joined columns names better is only on parameter
df = test.merge(dat, on=['key1', 'key2'], how='left')
print (df)
key1 key2 new feature
0 0.365803 0.259112 info1
1 0.086869 0.589834 NaN
2 0.269619 0.183644 NaN
3 0.755826 0.045187 NaN
4 0.204009 0.669371 info2
这篇关于合并多个数据框 pandas 的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文