使用过滤器替换值
Replacing values using a filter
让我分解一下我正在尝试做的事情,
- 在 NAME_INCOME_TYPE == Pensioner
列中为我的数据框创建了一个过滤器
- 应用过滤器
- Select 列中的所有 NaN 值,OCCUPATION_TYPE
- 将 NaN 替换为 'Retiree'
- 应用于原始数据框
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')
应该可以。
让我分解一下我正在尝试做的事情,
- 在 NAME_INCOME_TYPE == Pensioner 列中为我的数据框创建了一个过滤器
- 应用过滤器
- Select 列中的所有 NaN 值,OCCUPATION_TYPE
- 将 NaN 替换为 'Retiree'
- 应用于原始数据框
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')
应该可以。