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

如何用Lambda从迭代范围将80列重命名为Vol_4至Vol_80

批量修改DataFrame列名问题解决

原代码的问题

你的代码存在三处错误:

  • rename方法使用错误:rename需要传入映射规则(字典或函数)来修改列名,不能直接将生成器对象赋值给columns属性,会触发类型不匹配错误。
  • 字符串拼接类型错误:lambda中的x是整数,直接和字符串"Vol_"拼接会抛出TypeError,必须先把整数转为字符串。
  • 列名数量不匹配:range(4,80)生成4到79共76个值,但你的数据集有80列;同时你要求的Vol_4到Vol_80是77个列名,和80列的数量矛盾,需要先确认需求:
    • 若要给80列设置连续列名,应该是Vol_4到Vol_83(共80个);
    • 若严格要Vol_4到Vol_80,则数据集应为77列,可能你描述有误。

正确实现方案

场景1:给80列数据集设置从Vol_4开始的连续列名(Vol_4 ~ Vol_83)

直接生成列名列表赋值是最简洁的方式:

opvalue_time.columns = [f"Vol_{num}" for num in range(4, 4+80)]

或者用rename方法基于原列索引修改:

# 原列索引为0~79,对应转为Vol_4~Vol_83
opvalue_time = opvalue_time.rename(columns=lambda idx: f"Vol_{idx+4}")

场景2:设置Vol_4 ~ Vol_80(共77个列名,需数据集为77列)

opvalue_time.columns = [f"Vol_{num}" for num in range(4, 81)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 08:10:29