python中多个pandas数据库的外连接

时间:2017-02-06 17:22:18

标签: python pandas dataframe outer-join

从2009年到2016年,我每年都有一个数据帧。 每个数据帧分别有两列C_ID和一年标记。我想要连接所有数据帧。

所以例如

df_2009:

C_ID    2009
 A      456
 B      754
 C      332

df_2010:

C_ID    2010
 A      3454
 C      54
 E      234

我在stackoverflow上的其他帖子中找到了这种方法:

dfs = [df_2009, df_2010, df_2011, df_2012, df_2013, df_2014, df_2015, df_2016 ]
from functools import partial
merge = partial(pd.merge, on=['C_ID'])

result = dfs[0]
for df in dfs[1:]:
     result = merge(result, df)

但不幸的是,这是一个内连接,它摆脱了所有数据集中都没有的所有C_ID。我需要做一个外连接。

1 个答案:

答案 0 :(得分:0)

谢谢@cel,我添加了='外部'它工作了

dfs = [df_2009, df_2010, df_2011, df_2012, df_2013, df_2014, df_2015, df_2016 ]
from functools import partial
merge = partial(pd.merge, on=['C_ID'], how ='outer')

result = dfs[0]
for df in dfs[1:]:
     result = merge(result, df)