パンダ: dataframe を長いものから広いものに再形成する方法


次の基本構文を使用して、pandas DataFrame をロング形式からワイド形式に変換できます。

 df = pd. pivot (df, index=' col1 ', columns=' col2 ', values=' col3 ')

このシナリオでは、 col1 がインデックスになり、 col2 が列になり、 col3 がDataFrame 内の値として使用されます。

次の例は、この構文を実際に使用する方法を示しています。

例: Pandas DataFrame を長いものから広いものに変更する

次のような長い形式の pandas DataFrame があるとします。

 import pandas as pd

#create DataFrame in long format
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' player ': [1, 2, 3, 4, 1, 2, 3, 4],
                   ' points ': [11, 8, 10, 6, 12, 5, 9, 4]})

#view DataFrame
df

	team player points
0 to 1 11
1 to 2 8
2 to 3 10
3 to 4 6
4 B 1 12
5 B 2 5
6 B 3 9
7 B 4 4

次の構文を使用して、この DataFrame をロング形式からワイド形式に再形成できます。

 #reshape DataFrame from long format to wide format
df = pd. pivot (df, index=' team ', columns=' player ', values=' points ')

#view updated DataFrame
df

player 1 2 3 4
team				
A 11 8 10 6
B 12 5 9 4

DataFrame はワイド形式になりました。

データフレーム内のインデックス列として「チーム」、列として「プレイヤー」、値として「ポイント」を使用しました。

必要に応じて、代わりに「player」をインデックス列として使用し、「team」を列として使用できることに注意してください。

 #reshape DataFrame from long format to wide format
df = pd. pivot (df, index=' player ', columns=' team ', values=' points ')

#view updated DataFrame
df

team A B
player		
1 11 12
2 8 5
3 10 9
4 6 4

この DataFrame もワイド形式です。

: pandas pivot()関数の完全なドキュメントはここで見つけることができます。

追加リソース

次のチュートリアルでは、Python で他の一般的な操作を実行する方法について説明します。

パンダ: DataFrame を幅広から長さに変更する方法
Pandas DataFrame に行を追加する方法
Pandas DataFrame に列を追加する方法
Pandas DataFrame で特定の値の出現をカウントする方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です