2017-04-05 50 views
2

我有一個數據集,我有一個遊戲時間和一個事件的時間。如何根據Python中的兩個條件更改列的值

EVENT  GAME 
    0:34  0:43 
    NaN  0:23 
    2:34  3:43 
    NaN  4:50 

我想更換楠事件列,其中在遊戲列中的值GAME < 0.24。

df['EVENT'][(df['GAME'] < '0:24') & (df['EVENT'] == 'NaN')] = df['GAME'] 

我試過這個,但它不工作。很抱歉,如果它是明顯的。我是Python的新手。

回答

6

可以使用isnull進行檢查NaN

df.loc[(df['GAME'] < '0:24') & (df['EVENT'].isnull()), 'EVENT'] = df['GAME'] 
print (df) 

    EVENT GAME 
0 0:34 0:43 
1 0:23 0:23 
2 2:34 3:43 
3 NaN 4:50 

另一種解決方案與mask

mask = (df['GAME'] < '0:24') & (df['EVENT'].isnull()) 
df['EVENT'] = df['EVENT'].mask(mask, df['GAME']) 
print (df) 
    EVENT GAME 
0 0:34 0:43 
1 0:23 0:23 
2 2:34 3:43 
3 NaN 4:50 

或者numpy.where

df['EVENT'] = np.where(mask, df['GAME'], df['EVENT']) 
print (df) 
    EVENT GAME 
0 0:34 0:43 
1 0:23 0:23 
2 2:34 3:43 
3 NaN 4:50 
+0

很不錯的!謝謝 !!! –

相關問題