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

如何将多级列DataFrame的单行转换为常规DataFrame?

问题解答:多级列DataFrame的转换与直接构造

一、将现有多级列DataFrame转换为目标格式

最简洁且符合Python风格的方法是利用Series.unstack(),一行代码即可完成:

result = df.iloc[0].unstack(level=1)

原理说明:

  • df.iloc[0]取出原DataFrame中唯一的一行,得到一个带有多级索引的Series,索引结构为(水果名称, Data类型);
  • unstack(level=1)将Series的第二层索引(Data1/Data2/Data3)转换为列,第一层索引(Apple/Banana/Orange)转换为行索引,直接得到目标结构的DataFrame。

二、直接构造带多级列的DataFrame

无需先创建空DataFrame再赋值,直接在构造时传入对应结构的数据即可:

import pandas as pd

# 直接构造多级列DataFrame
df = pd.DataFrame(
    data=[[1, 2, 3, 4, 5, 6, 7, 8, 9]],  # 一行9个元素,对应3个水果×3个Data列
    columns=pd.MultiIndex.from_product([['Apple','Banana','Orange'],['Data1','Data2','Data3']]),
    index=[1]
)

数据结构说明:

因为多级列总共有3×3=9个列,所以传入的data需要是二维列表(即使只有一行),内部列表的元素顺序要与MultiIndex生成的列顺序完全对应(先Apple的三个Data列,再Banana,最后Orange)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 19:25:20