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

使用Pandas isin()新增匹配列出现SettingWithCopyWarning如何解决

报错原因

你写的df[df["Référence"].isin(df1["AM"])]["Avis BE"]=True属于链式索引操作:先通过布尔索引筛选出df的子切片,再对该切片的Avis BE列赋值。此时pandas无法确定你拿到的子切片是原DataFrame的视图还是独立副本,修改子切片的值不一定能同步到原df上,因此抛出SettingWithCopyWarning警告。

解决方案

有两种常用的修复方式:

  • 最优写法(一行完成,无需提前初始化列)
    直接把isin返回的布尔数组赋值给新列即可,完全避免链式索引操作:
df["Avis BE"] = df["Référence"].isin(df1["AM"])
  • 符合警告提示的.loc写法
    如果你需要分步骤操作,按照警告提示使用.loc同时指定行索引和列索引,直接对原df操作:
df["Avis BE"] = False
df.loc[df["Référence"].isin(df1["AM"]), "Avis BE"] = True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:06:06