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

如何转置pandas DataFrame多列并生成d前缀的自定义格式列名

Pandas DataFrame 按列展开为单行自定义列名实现方法

核心实现代码

以下为完整可运行代码,你可以直接替换示例数据源为自己的实际数据:

import pandas as pd

# 构造原始DataFrame,可替换为自己的数据源
df = pd.DataFrame({
    'AD': [169.88, 12.54, 321.38],
    'AP': [0.00, 0.01, 0.00],
    'AR': [50.50, 84.75, 65.08],
    'MD': [814.0, 93.0, 986.0],
    'MS': [57.3, 51.3, 56.7],
    'iS': [32.3, 36.6, 28.9],
    'AS': [43.230, 43.850, 42.070]
})

# 转换逻辑
# 1. 为原始行生成d1/d2/d3格式的前缀标识,自动适配任意行数
df.index = [f'd{i+1}' for i in df.index]
# 2. 堆叠数据后调整索引顺序,转置为单行结构
result = df.unstack().swaplevel().to_frame().T
# 3. 合并多级索引为要求的列名格式
result.columns = [f'{prefix}_{col}' for prefix, col in result.columns]

# 打印结果验证
print(result)

输出结果

运行后输出的result完全符合要求,所有原始列会自动完成展开:

d1_AD  d2_AD   d3_AD  d1_AP  d2_AP  d3_AP  d1_AR  d2_AR  d3_AR  d1_MD  d2_MD  d3_MD  d1_MS  d2_MS  d3_MS  d1_iS  d2_iS  d3_iS  d1_AS  d2_AS  d3_AS
0  169.88  12.54  321.38    0.0   0.01    0.0   50.5  84.75  65.08  814.0   93.0  986.0   57.3   51.3   56.7   32.3   36.6   28.9  43.23  43.85  42.07

补充说明

代码支持任意行数、任意列数的原始数据,不需要手动修改列名生成逻辑,新增原始列也会自动完成展开。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:09:01