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

如何对带双层表头的Pandas DataFrame执行unpivot操作得到目标长表结构

双层表头Pandas DataFrame转长表实现方法

你可以直接用Pandas自带的melt方法处理带多层列索引的DataFrame,完整实现代码如下:

import pandas as pd

# 原有读取逻辑保持不变
df = pd.read_csv('test.csv', 
                 header=[0,1],delimiter= ';',
                 engine='python', 
                 encoding= 'unicode_escape')

# 处理前3列的列名:前3列的两层表头完全重复,统一改为单层级列名
df.columns = df.columns.map(lambda x: x[0] if x[0] in ['Kode', 'Country', 'Procedure'] else x)

# 执行宽表转长表操作
long_df = df.melt(
    id_vars = ['Kode', 'Country', 'Procedure'],
    var_name = ['Gender', 'Age'],
    value_name = 'Frequency'
)

# 按需求重命名列,调整输出顺序
long_df = long_df.rename(columns={'Kode': 'Code'})
long_df = long_df[['Code', 'Country', 'Procedure', 'Gender', 'Age', 'Frequency']]

# 可选:按原有数据顺序排序
long_df = long_df.sort_values(by=['Code', 'Country', 'Procedure'], ignore_index=True)

运行后得到的long_df就是符合要求的六列长表结构,和你给出的示例输出完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:36:03