首页 >后端开发 >Python教程 >如何转置 DataFrame 以在 Pandas 中旋转其行和列?

如何转置 DataFrame 以在 Pandas 中旋转其行和列?

Patricia Arquette
Patricia Arquette原创
2024-11-11 14:45:031061浏览

How can I transpose a DataFrame to pivot its rows and columns in Pandas?

转置 DataFrame 进行透视

透视 DataFrame 是指转置其行和列以实现数据的不同表示。在 Pandas 中,可以采用透视方法来实现此目的。

考虑以下 DataFrame:

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

要对此 DataFrame 进行透视以将指标值作为新列:

out = df.pivot(columns = 'Country', 'Year', '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

恢复为未旋转状态格式:

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

有关更多信息,请参阅有关重塑和数据透视表的 Pandas 用户指南。

以上是如何转置 DataFrame 以在 Pandas 中旋转其行和列?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn