logo

パイソン |パンダ.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>

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>