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

Python Pandas DataFrame SettingWithCopyWarning 报错代码修改问询

问题解决方法

报错原因

这个警告由链式索引(代码中连续使用[][]两次取值的写法)触发:哪怕你已经对df做了拷贝,pandas的静态检查无法100%确认你操作的是独立副本,所以抛出警告,该写法也存在意外修改原始数据的潜在风险。

第187行修改方案

替换链式索引为pandas官方推荐的.loc索引写法,修改后代码如下:

df.loc[df['trade_status'] == 'DONE', 'trade_status'] = 'FILLED'

.loc的第一个参数为行筛选条件,第二个参数为要修改的目标列名,是原地修改DataFrame值的标准写法,可直接消除该警告。

其他可选优化(建议修改,避免后续隐患)

当前第186行的写法也存在同样的链式索引风险,建议同步修改为.loc写法:

df.loc[:, 'date_time'] = df['date_time'].dt.date

如果仍有警告,可将185行的拷贝逻辑明确指定为深拷贝,生成完全独立的副本,彻底切断和原input_df的关联:

df = input_df.copy(deep=True)

不推荐的临时处理方案:如果确认操作的是独立副本,只想屏蔽警告,可在代码前添加配置pd.set_option('mode.chained_assignment', None),但优先使用正确的索引写法更稳妥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:06:05