Python Pandas:将行转换为列标题[重复]
- 2025-03-05 09:18:00
- admin 原创
- 44
问题描述:
我有以下数据框:
Year Country medal no of medals
1896 Afghanistan Gold 5
1896 Afghanistan Silver 4
1896 Afghanistan Bronze 3
1896 Algeria Gold 1
1896 Algeria Silver 2
1896 Algeria Bronze 3
我想要这个方式。
Year Country Gold Silver Bronze
1896 Afghanistan 5 4 3
1896 Algeria 1 2 3
堆叠/取消堆叠似乎不起作用。
解决方案 1:
您正在寻找pivot_table
:
In [11]: medals = df.pivot_table('no of medals', ['Year', 'Country'], 'medal')
In [12]: medals
Out[12]:
medal Bronze Gold Silver
Year Country
1896 Afghanistan 3 5 4
Algeria 3 1 2
如果你想重新排列这些列:
In [12]: medals.reindex_axis(['Gold', 'Silver', 'Bronze'], axis=1)
Out[12]:
medal Gold Silver Bronze
Year Country
1896 Afghanistan 5 4 3
Algeria 1 2 3
解决方案 2:
只有在行/列索引中具有所需的列时,Stack/Unstack 才会起作用。例如,简单地说,Stack/Unstack 会将列索引的最低级别带到行索引的最低级别,反之亦然。
因此,就您而言,您可以通过以下方式使用 stack/unstack 获得相同的结果:
df.set_index(['Year','Country','medal'], drop=True).unstack('medal')
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD