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

如何对带双层列头的Pandas DataFrame进行透视转换

场景1:国家+性别双层列头转指定长表

你已经完成了数据读取和列名修正,直接执行以下代码即可得到目标结构:

# 将Age列设为索引,堆叠两层列头到行维度
result = df.set_index('Age').stack([0, 1], future_stack=True).reset_index()
# 重命名列满足要求
result.columns = ['Age', 'Country', 'Gender', 'frequency']
# 若不需要total维度,可加过滤条件:
# result = result[result['Gender'] != 'total']

其中stack([0,1])表示把多层列的第一层(国家)、第二层(性别)依次转成行维度的列。

场景2:带固定列的性别+年龄双层列头转指定长表

首先读取该数据:

df2 = pd.read_csv('你的第二个csv文件路径.csv', 
                  delimiter=";",
                  header=[0, 1])

执行转换代码:

# 将三个固定列设为索引(固定列的双层列名完全一致,直接传元组指定即可)
result2 = df2.set_index([('Code', 'Code'), ('Country', 'Country'), ('Procedure', 'Procedure')])
# 堆叠两层列头(第一层为性别,第二层为年龄)
result2 = result2.stack([0, 1], future_stack=True).reset_index()
# 重命名列
result2.columns = ['Code', 'Country', 'Procedure', 'Gender', 'Age', 'Frequency']

内容的提问来源于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:09:02