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 pddf = 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 color0 18 18 18.0 181 baidu 39 2.0 black2 wiki 22 3.0 None3 18 18 18.0 18
举例:将NAN值替换为None
import pandas as pdimport numpy as npdf = 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 color0 google None 1 red1 None 39 2 black2 wiki 22 3 None3 google 18 1 red
