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

如何在Pandas中相加两列且不触发SettingWithCopyWarning警告

解决Pandas两列相加触发SettingWithCopyWarning的问题

这个警告的核心原因是你的merged_df其实是另一个DataFrame的切片视图/副本,并非独立的原始DataFrame对象,直接用.loc赋值时就会触发警告。给你几个可行的解决方法:

  • 从根源避免副本:创建merged_df时生成独立副本
    如果merged_df是从其他DataFrame切片得到的(比如merged_df = some_df[['col1','col2']]),改成在切片时就添加.copy():

    merged_df = some_df[['airline_name', 'airline_icao_unique_code']].copy()
    

    之后再执行你的赋值操作,就不会触发警告了。

  • 用assign方法生成新列(推荐)
    assign方法会返回一个新的DataFrame,完全避开在副本上修改的问题,代码写法:

    merged_df = merged_df.assign(
        airline_name=lambda df: df['airline_name'] + df['airline_icao_unique_code']
    )
    
  • 直接操作原始DataFrame(如果允许)
    如果你的需求允许直接修改原始的大DataFrame,跳过创建merged_df这一步,直接在原始DataFrame上用.loc赋值:

    original_df.loc[:, 'airline_name'] = original_df['airline_name'] + original_df['airline_icao_unique_code']
    

之前你用.copy()没解决问题,大概率是因为你是在触发警告的赋值操作之后才执行copy,而非在创建merged_df时就生成独立副本——这时候已经晚了,因为警告是在给副本赋值时触发的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 00:07:16