You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免SettingWithCopyWarning并对DataFrame指定列做去均值处理?

解决SettingWithCopyWarning的实用方法

出现SettingWithCopyWarning通常是因为你操作的DataFrame可能是另一个DataFrame的切片视图,而非独立对象。以下几种方法可以实现需求且避免警告:

  • 方法一:使用.loc明确指定操作原DataFrame的列
    用loc[:, 列名列表]的方式直接定位原DataFrame的列,避免链式索引导致的视图/副本混淆:

    df.loc[:, ['a','b','d']] = df[['a','b','d']] - df[['a','b','d']].mean()
    
  • 方法二:用assign生成新DataFrame(不修改原数据)
    如果不想原地修改原DataFrame,可使用assign方法返回处理后的新对象,完全规避警告:

    df = df.assign(**{col: df[col] - df[col].mean() for col in ['a','b','d']})
    
  • 方法三:先复制DataFrame确保操作独立对象
    先将df复制为独立对象,再执行原逻辑:

    df = df.copy()
    df[['a','b','d']] = df[['a','b','d']] - df[['a','b','d']].mean()
    

内容的提问来源于stack exchange,提问作者Uqhah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 14:35:20