パイソン |パンダ.pivot()

pandas.pivot(インデックス、列、値) 関数は、DataFrame の 3 つの列に基づいてピボット テーブルを作成します。インデックス/列の一意の値を使用し、値を入力します。

Python Pandas.pivot() 構文

構文 : pandas.pivot(インデックス、列、値)

パラメーター:

  1. インデックス[ndarray] : 新しいフレームのインデックスを作成するために使用するラベル
  2. 列[ndarray] : 新しいフレームの列を作成するために使用するラベル
  3. 値[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