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

如何基于df1删除df2冗余列并添加df3指定列?

解决方法

先给你正确的处理步骤,再说说你之前代码的问题:

正确代码

步骤1:保留df2与df1的共同列

因为df2是由df1合并而来,df1的所有列都包含在df2中,直接提取这些列即可:

# 提取df2中与df1一致的列
df2 = df2[df1.columns]

步骤2:添加df3中指定的列

用join方法(或按列方向的concat)完成拼接,注意要保证两个DataFrame的索引对齐(索引不匹配会导致新增列出现NaN值):

# 添加df3中名为'Name'的列
df2 = df2.join(df3['Name'])
# 也可以用按列拼接的concat,效果相同
# df2 = pd.concat([df2, df3['Name']], axis=1)

你之前代码的问题

  • 第一个代码df2 = df2[(df1.column) & df3['Name']):

    1. 语法错误:括号不匹配,且df1.column应为df1.columns(复数形式);
    2. 逻辑错误:&是布尔运算符,不能用来拼接列名,选列需要用列名列表而非布尔条件。
  • 第二个代码df2 = pd.concat([df1, df3['Name']):

    1. 语法错误:括号不闭合;
    2. 逻辑错误:concat默认按行(axis=0)拼接,不是按列;而且你需要处理的是df2,不是直接拼接df1和df3;如果df1和df3索引完全不匹配,就会返回空值或全NaN的DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:40:21