2015-06-09 34 views
1

引入NaN的我有2個DataFrames:加入某個索引2個DataFrames沒有失蹤指數

df1 = pandas.DataFrame([[1,2,3],[4,5,6],[7,8,9]], columns=['a','b','c']) 
df2 = df1*2 
df2.index = [1,2,3] 

>>> df1 
    a b c 
0 1 2 3 
1 4 5 6 
2 7 8 9 

>>> df2 
    a b c 
1 2 4 6 
2 8 10 12 
3 14 16 18 

說,我想基於索引的a列添加從df2df1

df1['a'] += df2['a'] 
>>> df1 
    a b c 
0 NaN 2 3 
1 6 5 6 
2 15 8 9 

當索引存在於兩個框架中時,這可以正常工作,但是我希望只在索引缺失的情況下添加零,而不是引入nan s。有沒有辦法做到這一點?

+0

你的意思是這樣,'DF [ '一'] =(DF1 [ '一'] + DF2 [ '一'])fillna(。 0)'? – Zero

+0

@JohnGalt可以工作,但如果df ['a']非零開始,那麼這將給出錯誤的答案。 – Mike

+0

然後'df1 ['a'] + df2 ['a']。reindex(df1.index).fillna(0)'reindex()應該工作嗎? – Zero

回答

1

您可以使用Series.add的說法fill_value=0

>>> df1['a'] = df1['a'].add(df2['a'], fill_value=0) 

>>> df1 
    a b c 
0 1 2 3 
1 6 5 6 
2 15 8 9