按索引汇总两个数据帧

Tan*_*gne 4 python dataframe

我有以下

df1 = pd.DataFrame([1, 1, 1, 1, 1], index=[ 1, 2, 3, 4 ,5 ], columns=['A'])  
df2 = pd.DataFrame([ 1, 1, 1, 1, 1], index=[ 2, 3, 4, 5, 6], columns=['A']) 
Run Code Online (Sandbox Code Playgroud)

我想返回 DataFrame ,这将是每行两者的总和:

df = pd.DataFrame([ 1, 2, 2, 2, 2, 1], index=[1, 2, 3, 4, 5, 6], columns=['A'])  
Run Code Online (Sandbox Code Playgroud)

当然,这个想法是我不知道实际的索引是什么,所以交集可能是空的,我会得到两个数据帧的串联。

Ami*_*ory 5

您可以按行连接,按 0 填充缺失值,并按行求和:

>>> pd.concat([df1, df2], axis=1).fillna(0).sum(axis=1)
1    1
2    2
3    2
4    2
5    2
6    1
dtype: float64
Run Code Online (Sandbox Code Playgroud)

如果您希望将其作为 DataFrame,只需执行

pd.DataFrame({
    'A': pd.concat([df1, df2], axis=1).fillna(0).sum(axis=1)})
Run Code Online (Sandbox Code Playgroud)

(另外,请注意,如果您只需要为特定的Series 执行此操作A,请使用

pd.concat([df1.A, df2.A], axis=1).fillna(0).sum(axis=1)
Run Code Online (Sandbox Code Playgroud)

)