パイソン |パンダ.pivot()
pandas.pivot(インデックス、列、値) 関数は、DataFrame の 3 つの列に基づいてピボット テーブルを作成します。インデックス/列の一意の値を使用し、値を入力します。
Python Pandas.pivot() 構文
構文 : pandas.pivot(インデックス、列、値)
パラメーター:
- インデックス[ndarray] : 新しいフレームのインデックスを作成するために使用するラベル
- 列[ndarray] : 新しいフレームの列を作成するために使用するラベル
- 値[ndarray] : 新しいフレームの値を設定するために使用する値
戻り値: 再形成されたデータフレーム
例外: 重複がある場合は ValueError が発生します。
サンプル データフレームの作成
ここでは、記事全体で使用するサンプル DataFrame を作成しています。
Python3
# importing pandas as pd> import> pandas as pd> > # creating a dataframe> df> => pd.DataFrame({> 'A'> : [> 'John'> ,> 'Boby'> ,> 'Mina'> ],> > 'B'> : [> 'Masters'> ,> 'Graduate'> ,> 'Graduate'> ],> > 'C'> : [> 27> ,> 23> ,> 21> ]})> > df> |
出力
A B C 0 John Masters 27 1 Boby Graduate 23 2 Mina Graduate 21
Pandas pivot() 関数の例
以下は、次を使用して DataFrame をピボットできるいくつかの例です。 パンダ pivot() 関数 パイソン :
- 作成と データフレームをピボットする
- マルチレベルのピボットテーブルを作成する パンダのデータフレーム
- データフレームのピボットでの ValueError
作成と データフレームをピボットする
この例では、pandas DataFrame ( df> ) 列「A」と「B」がそれぞれ新しいインデックスと列になり、列「C」の値が結果のピボット テーブルのセルに入力されるようにピボットされます。この関数は、「A」と「B」の各組み合わせが「C」に一意の対応する値を持つことを前提としています。
Python3
# values can be an object or a list> df.pivot(> 'A'> ,> 'B'> ,> 'C'> )> |
出力
B Graduate Masters A Boby 23.0 NaN John NaN 27.0 Mina 21.0 NaN
Pandas DataFrame を使用したマルチレベルのピボット テーブルの作成
この例では、パンダの DataFrame ( df> ) は、インデックスとして「A」、列として「B」を使用し、列「C」と「A」の両方から値を抽出してセルを埋めることにより、マルチレベルのピボット テーブルに変換されます。このアプローチにより、結果として得られるピボット テーブルに複数のディメンションを組み込んで、データをより詳細に表現できるようになります。
Python3
# value is a list> df.pivot(index> => 'A'> , columns> => 'B'> , values> => [> 'C'> ,> 'A'> ])> |
出力
C A B Graduate Masters Graduate Masters A Boby 23.0 NaN NaN NaN John NaN 27.0 NaN NaN Mina 21.0 NaN NaN NaN
DataFrame のピボット時に ValueError が発生しました
複数の値を持つインデックス、列の組み合わせがある場合は、ValueError が発生します。
Python3
# importing pandas as pd> import> pandas as pd> > # creating a dataframe> df> => pd.DataFrame({> 'A'> : [> 'John'> ,> 'John'> ,> 'Mina'> ],> > 'B'> : [> 'Masters'> ,> 'Masters'> ,> 'Graduate'> ],> > 'C'> : [> 27> ,> 23> ,> 21> ]})> > > df.pivot(> 'A'> ,> 'B'> ,> 'C'> )> |
出力
ValueError: Index contains duplicate entries, cannot reshape