2016-03-02 125 views
4

我有以下总结两个DataFrames由Index

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']) 

我要回这将是两人的每一行的总和数据框:

df = pd.DataFrame([ 1, 2, 2, 2, 2, 1], index=[1, 2, 3, 4, 5, 6], columns=['A']) 
当然

,这个想法是我不知道实际的索引是什么,所以交集可能是空的,我会得到两个DataFrames的连接。

回答

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 

如果你想把它当作一个数据帧,简单地做

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) 

+0

完美的作品。非常感谢 –

+0

感谢您的提示。 –