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

如何在Pandas中仅用一个列名列表,循环追加'new'生成输出列名?

解决方案

方法1:修改循环逻辑,动态生成列名

不需要单独定义colnames_out,直接遍历colnames_in中的每个列名,通过f-string拼接new 前缀生成新列名:

import pandas as pd

colnames_in = ['col a', 'col b', 'col c']
df_dif = pd.DataFrame()  # 先初始化空DataFrame

for col in colnames_in:
    df_dif[f'new {col}'] = df_a[col] - df_b[col]

这种写法比原代码的索引循环更直观,也避免了维护两个列名列表的重复工作。

方法2:利用Pandas向量化运算(更高效)

Pandas推荐尽量避免循环,直接对指定列做向量化差值运算,再批量重命名列:

import pandas as pd

colnames_in = ['col a', 'col b', 'col c']
# 计算两DataFrame指定列的差值,同时批量添加new前缀
df_dif = (df_a[colnames_in] - df_b[colnames_in]).rename(columns=lambda x: f'new {x}')

这种方式代码更简洁,运算效率也更高,适合处理大规模数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 02:01:15