Pandas 将列多索引转换为行多索引
Posted
技术标签:
【中文标题】Pandas 将列多索引转换为行多索引【英文标题】:Pandas column multiindex into row multiindex 【发布时间】:2021-12-17 23:34:57 【问题描述】:我有一个熊猫数据框
df = pd.DataFrame([[i+10*j for i in range(6)] for j in range(5)], index=[f"itemi" for i in range(5)])
df.columns = pd.MultiIndex.from_product((["abc", "xyz"], ["one", "two", "three"]))
abc xyz
one two three one two three
item0 0 1 2 3 4 5
item1 10 11 12 13 14 15
item2 20 21 22 23 24 25
item3 30 31 32 33 34 35
item4 40 41 42 43 44 45
我无法弄清楚如何将第一级列多索引转换为行多索引以获得类似以下的内容
one two three
item0 abc 0 1 2
xyz 3 4 5
item1 abc 10 11 12
xyz 13 14 15
item2 abc 20 21 22
xyz 23 24 25
item3 abc 30 31 32
xyz 33 34 35
item4 abc 40 41 42
xyz 43 44 45
任何提示表示赞赏。 谢谢
【问题讨论】:
df.stack(level=0)
【参考方案1】:
给你:
df.stack(level=0)
【讨论】:
【参考方案2】:正如Quang Hoang 建议的那样,我会查看pandas.DataFrame.stack。 解决方案应该是:
df.stack(level=0)
【讨论】:
以上是关于Pandas 将列多索引转换为行多索引的主要内容,如果未能解决你的问题,请参考以下文章
Pandas - Groupby 多索引级别,获取可能的组合,然后转换数据