使用过滤器替换值

Replacing values using a filter

让我分解一下我正在尝试做的事情,

  1. 在 NAME_INCOME_TYPE == Pensioner
  2. 列中为我的数据框创建了一个过滤器
  3. 应用过滤器
  4. Select 列中的所有 NaN 值,OCCUPATION_TYPE
  5. 将 NaN 替换为 'Retiree'
  6. 应用于原始数据框

But I keep getting the below error,

SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame

我为执行上述操作而编写的代码,

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

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

我正在使用的数据框

我相信使用 .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')

应该可以。