【问题标题】:How to change the values of a column based on two conditions in Python如何根据 Python 中的两个条件更改列的值
【发布时间】:2017-08-31 03:50:48
【问题描述】:
我有一个数据集,其中包含游戏时间和事件时间。
EVENT GAME
0:34 0:43
NaN 0:23
2:34 3:43
NaN 4:50
我想将 GAME
df['EVENT'][(df['GAME'] < '0:24') & (df['EVENT'] == 'NaN')] = df['GAME']
我试过这个,但它不起作用。对不起,如果它很明显。我是 Python 新手。
【问题讨论】:
标签:
python
pandas
dataframe
【解决方案1】:
您可以使用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