如何在 Pandas 中旋转数据框?
- 2024-12-23 08:43:00
- admin 原创
- 65
问题描述:
我有一个 csv 格式的表格,如下所示。我想转置该表格,以便指标列中的值成为新列。
Indicator Country Year Value
1 Angola 2005 6
2 Angola 2005 13
3 Angola 2005 10
4 Angola 2005 11
5 Angola 2005 5
1 Angola 2006 3
2 Angola 2006 2
3 Angola 2006 7
4 Angola 2006 3
5 Angola 2006 6
我希望最终结果看起来是这样的:
Country Year 1 2 3 4 5
Angola 2005 6 13 10 11 5
Angola 2006 3 2 7 3 6
我曾尝试使用熊猫数据框,但没有成功。
print(df.pivot(columns = 'Country', 'Year', 'Indicator', values = 'Value'))
对于如何实现这一目标您有什么想法吗?
解决方案 1:
你可以.pivot
像这样使用:
out = df.pivot(index=['Country', 'Year'], columns='Indicator', values='Value')
print(out)
Indicator 1 2 3 4 5
Country Year
Angola 2005 6 13 10 11 5
2006 3 2 7 3 6
要压缩回平面表,请使用.rename_axis
删除“指标”并将.reset_index
国家和年份转换回正常列。
print(out.rename_axis(columns=None).reset_index())
Country Year 1 2 3 4 5
0 Angola 2005 6 13 10 11 5
1 Angola 2006 3 2 7 3 6
.pivot_table
如果您的完整数据有重复的标签组合(国家、年份、指标),则可以使用.pivot_table
。它默认取平均值。
out = df.pivot_table(
index=['Country', 'Year'],
columns='Indicator',
values='Value')
print(out.rename_axis(columns=None).reset_index())
Country Year 1 2 3 4 5
0 Angola 2005 6.0 13.0 10.0 11.0 5.0
1 Angola 2006 3.0 2.0 7.0 3.0 6.0
用户指南:重塑表和数据透视表
解决方案 2:
要旋转该表,您需要在 Pandas“pivot”中使用三个参数。
table = df.pivot(index='Country', columns='Year', values='Value')
print(table)
这应该会给出所需的输出。
相关推荐
热门文章
项目管理软件有哪些?
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理必备:盘点2024年13款好用的项目管理软件
热门标签
云禅道AD