我有以下
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,它将是每行的两个总和:
df = pd.DataFrame([ 1, 2, 2, 2, 2, 1], index=[1, 2, 3, 4, 5, 6], columns=['A'])
当然,我的想法是我不知道实际索引是什么,所以交集可能是空的,我会得到两个DataFrame的串联。
答案 0 :(得分:4)
您可以按行连接,将缺失值填充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
如果您想将其作为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)
)