2017-04-17 49 views
1

我執行以下代碼熊貓等效ISNULL的列修改語句

Q = pd.DataFrame([['a',1], ['b',2]], columns=['x','y']) 
W = pd.DataFrame([['a',1], ['c',8]], columns=['x', 'y']) 

Q.set_index(['x'], inplace=True) 
W.set_index(['x'], inplace=True) 

Q.y = Q.y + W.y 
display(mydata) 

和接收表

y 
x 
a 3.0 
b NaN 

有在表W和因此大熊貓爲「B」沒有相應的行使得(2 + NaN)導致NaN。 是爲了用零來取代楠獲得

y 
x 
a 3.0 
b 2.0 

在大熊貓提供ISNULL的任何等同?

我明白,這是可能的合併,fill_nan。但我正在尋找一種沒有合併的方式。

回答

2

看來你需要add

Q.y = Q.y.add(W.y, fill_value=0) 
print (Q) 
    y 
x  
a 2.0 
b 2.0 
+0

十分感謝。如果我需要減重1 * Q.y + weigth2 * W.y怎麼辦?實際上,你已經顯示的語法,我可以使它像weight1 * Q.y.add(weigth2/weigth1 * W.y,fill_value = 0)。這是更好的方法嗎? –