Nic*_*ier 2 python dataframe pandas
我有一个数据集,我在游戏中有时间和事件的时间.
EVENT GAME
0:34 0:43
NaN 0:23
2:34 3:43
NaN 4:50
Run Code Online (Sandbox Code Playgroud)
我想将GAME <0.24的EVENT列中的NaN替换为GAME列中的值.
df['EVENT'][(df['GAME'] < '0:24') & (df['EVENT'] == 'NaN')] = df['GAME']
Run Code Online (Sandbox Code Playgroud)
我试过这个但它不起作用.对不起,如果很明显.我是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
Run Code Online (Sandbox Code Playgroud)
另一个解决方案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
Run Code Online (Sandbox Code Playgroud)
或者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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5914 次 |
| 最近记录: |