s90*_*00n 5 python dataframe pandas
我想根据基于列的条件制作整行NaN例如,如果B> 5我想要整行NaN:
未处理的数据帧:
'A''B'
1 4
3 5
4 6
8 7
Run Code Online (Sandbox Code Playgroud)
如果B> 5,则整行NaN
'A''B'
1 4
3 5
NaN NaN
NaN NaN
Run Code Online (Sandbox Code Playgroud)
谢谢.
用于boolean indexing为每个条件分配值:
df[df['B'] > 5] = np.nan
print (df)
A B
0 1.0 4.0
1 3.0 5.0
2 NaN NaN
3 NaN NaN
Run Code Online (Sandbox Code Playgroud)
或者DataFrame.mask默认NaN按条件添加:
df = df.mask(df['B'] > 5)
print (df)
A B
0 1.0 4.0
1 3.0 5.0
2 NaN NaN
3 NaN NaN
Run Code Online (Sandbox Code Playgroud)
df = df.where(~(df['B']>5))
Run Code Online (Sandbox Code Playgroud)
你也可以使用 df.loc[df.B > 5, :] = np.nan
例子
In [14]: df
Out[14]:
A B
0 1 4
1 3 5
2 4 6
3 8 7
In [15]: df.loc[df.B > 5, :] = np.nan
In [16]: df
Out[16]:
A B
0 1.0 4.0
1 3.0 5.0
2 NaN NaN
3 NaN NaN
Run Code Online (Sandbox Code Playgroud)
在人类语言df.loc[df.B > 5, :] = np.nan中可以翻译为:
分配
np.nan给条件有效:的数据框 (df) 的任何列 ( )df.B > 5。
| 归档时间: |
|
| 查看次数: |
1127 次 |
| 最近记录: |