DataFrame.where
DataFrame.where(cond, other=nan, inplace=False, axis=None, level=None, errors=’raise’, try_cast=False)
替换条件为False的值。
Parameters
cond | 当cond为True时,保持原始值;当cond为False时,则替换为对应的值 |
---|---|
other | 要替换的对应的值 |
inplace | False:返回一个副本;True:就地执行操作并返回None |
axis | 0:作用于行;1:作用于列 |
level | 索引级别 |
errors | raise:允许引发异常;ignore:抑制异常 |
try_cast | 尝试将结果转换回输入类型(如果可能) |
举例:将年龄小于等于18的值替换为18
import pandas as pd
df = pd.DataFrame({'site':['google', 'baidu', 'wiki', 'google'],
'age':[18, 39, 22, 18],
'price': [1.0, 2.0, 3.0, 1.0],
'color': ['red', 'black', None, 'red']})
df.where(df['age']>18, 18)
-------------------------------------------------------------------
site age price color
0 18 18 18.0 18
1 baidu 39 2.0 black
2 wiki 22 3.0 None
3 18 18 18.0 18
举例:将NAN值替换为None
import pandas as pd
import numpy as np
df = pd.DataFrame({'site':['google', np.nan, 'wiki', 'google'],
'age':[np.nan, 39, 22, 18],
'price': [1.0, 2.0, 3.0, 1.0],
'color': ['red', 'black', np.nan, 'red']})
df.where(df.notnull(), None)
-------------------------------------------------------------------
site age price color
0 google None 1 red
1 None 39 2 black
2 wiki 22 3 None
3 google 18 1 red