如何根据Python中的两个条件更改列的值
问题描述:
我有一个数据集,我有一个游戏时间和一个事件的时间。如何根据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的新手。
答
可以使用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
很不错的!谢谢 !!! –