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> |
Javaのサンプルコード
>
YouTubeビデオVLCを保存
>
出力
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'>])> |
>
javaxor
>
出力
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
int を double java に変換する
# 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>