パンダ: groupby と値のカウントの使用方法


次の基本構文を使用して、pandas DataFrame 内のグループごとの一意の値の頻度をカウントできます。

 df. groupby ([' column1 ', ' column2 ']). size (). unstack (fill_value= 0 )

次の例は、この構文を実際に使用する方法を示しています。

例: Pandas での GroupBy と値のカウントの使用

次のパンダ データフレームがあるとします。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' position ':['G', 'G', 'F', 'F', 'C', 'G', 'F', 'F', 'F', 'F'],
                   ' points ': [8, 8, 10, 10, 11, 8, 9, 10, 10, 10]})

#view DataFrame
print (df)

  team position points
0 AG 8
1 GA 8
2 AF10
3 AF 10
4 AC 11
5 BG 8
6 BF 9
7 BF 10
8 BF 10
9 BF 10

次の構文を使用して、チームポジションの列ごとにグループ化されたポイント値の頻度をカウントできます。

 #count frequency of points values, grouped by team and position
df. groupby ([' team ',' position ',' points ']). size (). unstack (fill_value= 0 )

	points 8 9 10 11
team position				
A C 0 0 0 1
        F 0 0 2 0
        G 2 0 0 0
B F 0 1 3 0
        G 1 0 0 0

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

  • チーム A およびポジション C のプレーヤーのポイント列に値 8 が表示されたのは0回です。
  • チーム A およびポジション C のプレーヤーのポイント列に値 9 が表示されたのは0回です。
  • チーム A およびポジション C のプレーヤーのポイント列に値 10 が表示されたのは0回です。
  • チーム A およびポジション C のプレーヤーのポイント列に値 11 が1回表示されました。

等々。

次の構文を使用して、チームごとにグループ化されたポジションの頻度をカウントすることもできます。

 #count frequency of positions, grouped by team
df. groupby ([' team ', ' position ']). size (). unstack (fill_value= 0 )

position C F G
team			
A 1 2 2
B 0 4 1

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

  • 値「C」はチーム A で1回発生しました。
  • 値「F」はチーム A に2回出現しました。
  • 値「G」はチーム A に2回出現しました。
  • 値「C」はチーム B で0回発生しました。
  • 「F」値はチーム B で4回発生しました。
  • 値「G」はチーム B で1回発生しました。

等々。

追加リソース

次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。

Pandas で GroupBy 合計を実行する方法
Pandas で GroupBy を使用して一意の値をカウントする方法
Pandas で Groupby と Plot を使用する方法

コメントを追加する

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