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

如何按规则重命名DataFrame列?原7步重命名代码失效

解决方案

先明确你的列重命名规则:除首列id外,每28列为一组,第n组(从0开始计数)的列名格式为d{n*10 + k},其中k是组内列的位置(0到27)。对应到原数据列:

  • 第1-28列(数据列位置0-27)→ d0~d27
  • 第29-56列(数据列位置28-56)→ d10~d127
  • 第57-84列(数据列位置57-84)→ d20~d227
  • …以此类推,共10组刚好覆盖280个数据列

代码实现

import numpy as np
import pandas as pd

# 生成示例10×281的DataFrame
A = np.random.randint(10, size=(10, 281))
A_df = pd.DataFrame(A)
# 将首列重命名为id
A_df.rename(columns={0: 'id'}, inplace=True)

# 生成符合规则的列名
total_data_cols = A_df.shape[1] - 1  # 提取数据列总数(280)
# 遍历每个数据列位置,计算对应后缀
data_col_names = [f'd{(i // 28)*10 + (i % 28)}' for i in range(total_data_cols)]
# 拼接首列与数据列名
A_df.columns = ['id'] + data_col_names

逻辑说明

  • i // 28:计算当前数据列所属的组号(每组28列,从0开始计数)
  • i % 28:计算当前数据列在组内的位置(0到27)
  • (i//28)*10 + (i%28):生成d后缀数字,满足每组起始数字递增10的规则
  • 最后将id与生成的所有数据列名拼接,替换原DataFrame的列名

验证方式

可以打印前后部分列名确认规则是否生效:

print(A_df.columns[:30])  # 输出首列+前29个数据列,应看到id, d0~d27, d10, d11...
print(A_df.columns[-30:]) # 输出最后30列,应看到d90~d927(最后一组为第9组)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:45:23