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

如何在Pandas DataFrame中复制并重命名指定列?

简洁实现Pandas列映射与重命名方案

针对你的需求,无需循环遍历或手动删除列,用Pandas原生方法可以直接构造目标DataFrame,以下是两种简洁方案:

方案一:字典构造+assign追加列

直接通过字典生成映射后的列,再用assign保留values列:

table_name = 'table_1'
mapping = mapping_dict[table_name]

# 生成映射后的列字典(自动处理同一原列映射多个新列的情况)
mapped_columns = {new_col: df[old_col] for new_col, old_col in mapping.items()}
# 构造新DataFrame并追加values列
new_df = pd.DataFrame(mapped_columns).assign(values=df['values'])

方案二:pd.concat批量重命名拼接

用列表推导式生成重命名后的Series,再通过pd.concat拼接所有列:

table_name = 'table_1'
mapping = mapping_dict[table_name]

new_df = pd.concat(
    # 遍历映射生成重命名后的Series
    [df[col].rename(new_col) for new_col, col in mapping.items()]
    # 追加原values列
    + [df['values']],
    axis=1
)

方案优势

  • 无需复制整个原DataFrame,仅按需提取需要的列,内存效率更高
  • 天然支持同一原列映射多个新列的场景(如dt_start和dt_end都映射自B)
  • 代码更紧凑,完全基于Pandas原生向量化操作逻辑,可读性更强

运行以上代码后,new_df将完全符合你给出的预期输出,针对table_2只需替换table_name参数即可复用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 10:13:11