2017-12-02 89 views

回答

1

你可以做類似

df.loc[df.column1.isnull(), 'column1'] = df.column2 

或可替代(這可能是更好的性能),

df.column1 = np.where(df.column1.isnull(), df.column2, df.column1) 

例如:

In [29]: df = pd.DataFrame({'column1': [1.2, np.nan, 3.3, np.nan], 'column2': [5.1, 6.2, 7.1, 8.4]}) 

In [30]: df 
Out[30]: 
    column1 column2 
0  1.2  5.1 
1  NaN  6.2 
2  3.3  7.1 
3  NaN  8.4 

In [31]: df.loc[df.column1.isnull(), 'column1'] = df.column2 

In [32]: df 
Out[32]: 
    column1 column2 
0  1.2  5.1 
1  6.2  6.2 
2  3.3  7.1 
3  8.4  8.4 
+0

現在看來似乎不起作用。如果列1中的元素是NaN,我想用列2中的第i個元素中的元素替換第1列中的第i個元素。 –

+0

我已經添加了一個說明它如何工作的例子。 – fuglede