Python 使用筛选器替换值

Python 使用筛选器替换值,python,pandas,fillna,Python,Pandas,Fillna,让我把我想做的事情分解一下 为我的数据框创建了一个过滤器,列名为_INCOME_TYPE==Pensioner 应用过滤器 选择“职业类型”列中的所有NaN值 将NaN替换为“退休人员” 应用于原始数据帧 但我一直得到下面的错误 SettingWithCopyWarning:正在尝试在副本上设置值 从数据帧切片 我写的代码就是为了完成上述任务 filt = app_data['NAME_INCOME_TYPE'] == 'Pensioner' app_data.loc[filt]['OCCUP

让我把我想做的事情分解一下

  • 为我的数据框创建了一个过滤器,列名为_INCOME_TYPE==Pensioner
  • 应用过滤器
  • 选择“职业类型”列中的所有NaN值
  • 将NaN替换为“退休人员”
  • 应用于原始数据帧
  • 但我一直得到下面的错误

    SettingWithCopyWarning:正在尝试在副本上设置值 从数据帧切片

    我写的代码就是为了完成上述任务

    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')
    

    应该有效。

    您应该指定您面临的问题。IDK在我发布问题前一秒钟您是如何回答我的问题的:)。但是你应该编辑你的帖子来添加你收到的警告/错误。嗨,Yevhen,对不起!我刚刚加了一个警告,我很担心。这是不正确的。修好了