按索引对两个数据框相加

6
我有以下内容。
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']) 

我希望返回DataFrame,其中每行的总和是这两个DataFrame相加的结果:
df = pd.DataFrame([ 1, 2, 2, 2, 2, 1], index=[1, 2, 3, 4, 5, 6], columns=['A'])  

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

7
你可以按行连接(concatenate),用0来填充缺失的值,并按行求和(sum):
>>> 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

如果您想将其作为DataFrame,只需执行以下操作:
pd.DataFrame({
    'A': pd.concat([df1, df2], axis=1).fillna(0).sum(axis=1)})

(此外,请注意,如果您只需要针对特定的系列A进行此操作,只需使用)
pd.concat([df1.A, df2.A], axis=1).fillna(0).sum(axis=1)

)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接