パンダ:crosstab() 関数で aggfunc を使用する方法


pandascrosstab()関数でaggfunc引数を使用すると、特定のメトリックを使用して値を集計するクロス集計を作成できます。

 p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=' count ')

aggfuncのデフォルト値は「count」ですが、平均、中央値、合計、最小、最大などの他の集計方法を指定できます。

aggfunc引数で複数の集計メソッドを指定することもできます。

 p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=[' min ', ' max '])

次の例は、次の pandas DataFrame でこれらの各メソッドを実際に使用する方法を示しています。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C '],
                   ' position ':['G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'],
                   ' points ': [22, 25, 24, 39, 34, 20, 18, 17, 20, 19, 22]})

#view DataFrame
print (df)

   team position points
0 AG 22
1 AG 25
2 AF 24
3 BG 39
4 BF 34
5 BF 20
6 BF 18
7 GC 17
8 GC 20
9 CF 19
10 CF 22

例 1: aggfunc の値を使用してクロス集計を作成する

次のcrosstab()関数をaggfunc=’mean’引数とともに使用すると、各ポジションとチームの組み合わせの平均値ポイントを表示するクロス集計を作成できます。

 #create crosstab that displays mean points value by team and position
p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' mean ')

position F G
team		
A 24.0 23.5
B 24.0 39.0
C 20.5 18.5

結果を解釈する方法は次のとおりです。

  • チーム A のポジション F の選手の平均ポイントは24です。
  • チーム A のポジション G のプレーヤーの平均ポイントは23.5です。

等々。

最大値などの別の集計メトリックを使用することもできます。

 #create crosstab that displays max points value by team and position
p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' max ')


position F G
team		
At 24 25
B 34 39
C 22 20

結果を解釈する方法は次のとおりです。

  • チーム A のポジション F のプレーヤーの最大ポイントは24です。
  • チーム A のポジション G のプレーヤーの最大ポイントは25です。

等々。

例 2: aggfunc で複数の値を含むクロス集計を作成する

aggfunc引数に複数の値を指定したcrosstab()関数を使用して、ポジションとチームの組み合わせごとに複数のメトリクスによってポイント値を集計できます。

 #create crosstab that displays min and max points by team and position
p.d. crosstab (df. team , df. position , df. points , aggfunc=[' min ', ' max ']) 

	              min max
position F G F G
team				
A 24 22 24 25
B 18 39 34 39
C 19 17 22 20

結果を解釈する方法は次のとおりです。

  • チーム A のポジション F のプレーヤーの最小ポイント値は24です。
  • チーム A のポジション G のプレーヤーの最小ポイント値は22です。
  • チーム A のポジション F のプレーヤーの最大ポイント値は24です。
  • チーム A のポジション G のプレーヤーの最大ポイント値は25です。

等々。

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

追加リソース

次のチュートリアルでは、他の一般的なパンダのタスクを実行する方法について説明します。

パンダ: パーセンテージを含むクロス集計を作成する方法
パンダ: GroupBy と値のカウントの使用方法
パンダ: ビン数で GroupBy を使用する方法

コメントを追加する

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