如何使用 pandas Python 合并两个数据框
How to merge two dataframes with pandas Python
这里有 2 个数据帧:
d1 = pd.DataFrame({'a': [19, 65, 7, 49, 66, 89, 545],
'b': [4, 6, 6, 90, 5, 77, 767],
'c': [34, 78, 65, 666, '', '', '']})
d2 = pd.DataFrame({'c': [34, 78, 65, '', ''],
'd': [4, 6, 6, 90, 767]})
我想将它们合并为“c”列作为连接。
就我而言,我使用这个:
df = pd.merge(d1, d2, how='left')
但结果并不好。其实我有一些doublons,再加上最后的结果应该是一个和d1等长的dataframe。就我而言,这不是真的。
这是我想要的结果:
df = pd.DataFrame({'a': [19, 65, 7, 49, 66, 89, 545],
'b': [4, 6, 6, 90, 5, 77, 767],
'c': [34, 78, 65, 666, '', '', ''],
'd': [4, 6, 6, 90, 767, '', '']})
IIUC:
使用 concat()
和 fillna()
:
df=pd.concat([d1,d2.pop('d')],axis=1).fillna('')
#OR
df=pd.concat([d1,d2['d']],axis=1).fillna('')
现在,如果您打印 df
,您将获得预期的输出
这里有 2 个数据帧:
d1 = pd.DataFrame({'a': [19, 65, 7, 49, 66, 89, 545],
'b': [4, 6, 6, 90, 5, 77, 767],
'c': [34, 78, 65, 666, '', '', '']})
d2 = pd.DataFrame({'c': [34, 78, 65, '', ''],
'd': [4, 6, 6, 90, 767]})
我想将它们合并为“c”列作为连接。
就我而言,我使用这个:
df = pd.merge(d1, d2, how='left')
但结果并不好。其实我有一些doublons,再加上最后的结果应该是一个和d1等长的dataframe。就我而言,这不是真的。
这是我想要的结果:
df = pd.DataFrame({'a': [19, 65, 7, 49, 66, 89, 545],
'b': [4, 6, 6, 90, 5, 77, 767],
'c': [34, 78, 65, 666, '', '', ''],
'd': [4, 6, 6, 90, 767, '', '']})
IIUC:
使用 concat()
和 fillna()
:
df=pd.concat([d1,d2.pop('d')],axis=1).fillna('')
#OR
df=pd.concat([d1,d2['d']],axis=1).fillna('')
现在,如果您打印 df
,您将获得预期的输出