从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。我需要做一个外连接。
答案 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)