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

如何对多级表头DataFrame执行Pivot/Stack操作?

解决方案

场景1:修复CSV读取后带空白的多级列名

如果你的CSV表头是两行结构(第一行是类别A/B但隔列空白,第二行是min/max),读取后列名第一级会出现空白值,可通过向前填充补全:

# 读取CSV文件(指定两行作为表头,item列为索引)
df = pd.read_csv('your_file.csv', header=[0,1], index_col='item')

# 补全第一级列名的空白值
df.columns = df.columns.set_levels(df.columns.get_level_values(0).ffill(), level=0)

执行后就能得到示例中无空白的正确两级列头结构。

场景2:转换为长格式DataFrame

如果是想把现有多级列的宽表转成每行对应一个类别(A/B)的长表,用stack方法即可,比pivot table更直接:

# 将第一级列(A/B)堆叠为行
df_long = df.stack(level=0).reset_index()
# 重命名列名让结构更清晰
df_long.columns = ['item', 'category', 'min', 'max']

最终输出结果:

itemcategoryminmax
0A0.0093590.499058
0B0.1133840.049974
1A0.6854080.486988
1B0.8976570.647452
2A0.8969630.721135
2B0.8313530.827568

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 18:24:04