ホームページ >バックエンド開発 >Python チュートリアル >「Indicator」列の値が新しい列になるように Pandas でデータ テーブルを変換するにはどうすればよいですか?

「Indicator」列の値が新しい列になるように Pandas でデータ テーブルを変換するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-04 20:30:15237ブラウズ

How do I transform a data table in Pandas with the 'Indicator' column values becoming new columns?

Pandas でのデータフレームのピボット

このタスクには、CSV 形式のデータ テーブルの転置が含まれます。ここで、「Indicator」列の値は次のようになります。新しい列。望ましい結果は、行が「国」と「年」で定義され、列が「インジケーター」値であるフラット化された形式です。 >ピボット操作を実現するには、.pivot メソッドを次のように利用できます。

このメソッドは、「国」と「年」が行インデックスになり、「インジケーター」値が列になるようにデータを再配置します。結果として得られる 'out' 変数には、ピボットされたデータが保持されます。

データをフラット テーブル形式に戻すには、.rename_axis を使用して列から 'Indicator' ラベルを削除し、.reset_index を使用して 'country' を復元します。
out = df.pivot(index=['Country', 'Year'], columns='Indicator', values='Value')

これにより、「国」、「年」、および「年」を含むフラット化されたテーブルが生成されます。列としての「インジケーター」値。

.pivot_table の使用

print(out.rename_axis(columns=None).reset_index())

元の「国」、「年」、「インジケーター」の組み合わせが重複する場合データセット、.pivot_table を使用できます。重複した値に対して集計 (デフォルトで平均) が実行されます。

このアプローチにより、重複値が平均化され、列から「インジケーター」ラベルが省略されたフラット化されたテーブルが作成されます。

関連ドキュメント

out = df.pivot_table(
    index=['Country', 'Year'],
    columns='Indicator',
    values='Value')
print(out.rename_axis(columns=None).reset_index())

詳細については、 Pandas のテーブルの再形成とピボットについては、次のリソースを参照してください。

テーブルの再形成とピボット ユーザー ガイド

Pandas ドキュメント: 再形成とピボット

以上が「Indicator」列の値が新しい列になるように Pandas でデータ テーブルを変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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