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

使用Pandas重塑DataFrame:将嵌套列转换为扁平列名

解决Pandas多级列名扁平化问题

首先修正你代码里的小错误:pd.df.pivot应该改为df.pivot,调用pivot方法的是你读入的DataFrame对象df,不是pd模块下的df。

接下来提供两种快速将多级列转为Feature_Attribute格式扁平列名的方案:

方案一:列表推导式合并列层级

这是最直接的方式,遍历多级列的每个元组,用下划线连接两个层级的名称:

import pandas as pd
df = pd.read_csv('file.csv', encoding='utf-8', delimiter=";")
# 执行pivot操作(修正原代码错误)
df_new = df.pivot(index='ID', columns=['Feature', 'Attribute'], values='Value')
# 扁平化列名
df_new.columns = ['_'.join(col) for col in df_new.columns]
# 可选:将ID从索引转回普通列(根据需求选择)
df_new = df_new.reset_index()

方案二:使用MultiIndex的map方法

利用MultiIndex的内置方法批量处理列名,效果和方案一一致:

# 承接上面的df_new
df_new.columns = df_new.columns.map(lambda x: '_'.join(x))

处理后,你就可以通过df_new['color_warm']这类直接的列名来访问数据,无需再处理多级索引的嵌套结构。如果pivot后存在缺失值,可以根据业务需求用df_new.fillna(指定值)来填充。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:30:53