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

如何转换Python DataFrame,将行列标题合并为新列名并重构表格?

处理DataFrame结构重构方案

假设你提取到的第6个DataFrame(记为df6)原始结构如下:

Unnamed: 0MCTNGDCR
0GROUPMCTNGDCR
1GAS102030
2HYDRO152535
3SOLAR51525

想要得到的目标结构是:

GAS_MCGAS_TNGGAS_DCRHYDRO_MCHYDRO_TNGHYDRO_DCRSOLAR_MCSOLAR_TNGSOLAR_DCR
10203015253551525

实现步骤及代码

  1. 清理冗余行:删除GROUP所在的行(索引0)
df6_cleaned = df6.drop(index=0)
  1. 设置能源类型为索引:将首列(通常是Unnamed: 0)设为索引,并命名为energy_type,方便后续组合列名
# 定位首列并设为索引
df6_cleaned = df6_cleaned.set_index(df6_cleaned.columns[0])
df6_cleaned.index.name = "energy_type"
  1. 重塑表格结构:通过「长表转宽表」的方式,把能源类型和分组组合成新列名
# 先转成长格式,拆分出能源类型、分组和对应值
df_melted = df6_cleaned.reset_index().melt(
    id_vars="energy_type",
    var_name="group",
    value_name="value"
)

# 组合生成新列名
df_melted["new_column"] = df_melted["energy_type"] + "_" + df_melted["group"]

# 转回宽格式,得到目标结构
df_final = df_melted.pivot(columns="new_column", values="value").reset_index(drop=True)

# 可选:将值转为数值类型(如果提取的是字符串)
df_final = df_final.apply(pd.to_numeric, errors="coerce")

补充说明

  • 如果你的原始DataFrame列名不是Unnamed: 0,直接替换成实际列名即可
  • 若GROUP行的索引不是0,根据实际情况调整drop(index=...)的参数
  • 要是需要保留多组数据(比如多行值),可以保留index参数在pivot中,避免值被覆盖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 09:50:17