2016-03-02 123 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

感謝您的提示。 –