ホームページ  >  記事  >  バックエンド開発  >  Pandas で DataFrame を転置して行と列をピボットするにはどうすればよいですか?

Pandas で DataFrame を転置して行と列をピボットするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-11 14:45:03996ブラウズ

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

Using . 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 ユーザー ガイドを参照してください。

以上がPandas で DataFrame を転置して行と列をピボットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。