使用过滤器替换值

时间:2020-08-03 13:46:50

标签: python pandas fillna

让我详细说明我要做什么,

  1. 在数据框NAME_INCOME_TYPE == Pensioner中创建一个过滤器
  2. 应用的过滤器
  3. 在OCCUPATION_TYPE列中选择所有NaN值
  4. 用“退休人员”代替NaN
  5. 应用于原始数据框

但我不断收到以下错误消息,

SettingWithCopyWarning:试图在一个副本上设置一个值 从DataFrame切片

我为完成上述操作而编写的代码

filt = app_data['NAME_INCOME_TYPE'] == 'Pensioner'

app_data.loc[filt]['OCCUPATION_TYPE'].fillna('Retiree', inplace = True)

我正在使用enter image description here

的数据帧

1 个答案:

答案 0 :(得分:1)

我相信像这样使用.loc[filter, column].fillna(...)

filt = app_data['NAME_INCOME_TYPE'] == 'Pensioner'
app_data.loc[filt,'OCCUPATION_TYPE'] = app_data.loc[filt,'OCCUPATION_TYPE'].fillna('Retiree')

应该工作。