パンダ: size() で groupby() を使用する方法
pandasの groupby()関数およびsize()関数で次のメソッドを使用して、グループごとの出現数をカウントできます。
方法 1: 変数ごとにグループ化された出現回数をカウントする
df. groupby (' var1 '). size ()
方法 2: 複数の変数ごとにグループ化された出現回数をカウントする
df. groupby ([' var1 ', ' var2 ']). size ()
方法 3: 出現回数を複数の変数でグループ化し、数値で並べ替える
df. groupby ([' var1 ', ' var2 ']). size (). sort_values (ascending= False )
次の例は、次の pandas DataFrame で各メソッドを実際に使用する方法を示しています。
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'G', 'G', 'F'], ' points ': [15, 22, 24, 25, 20, 35, 34, 19, 14, 12]}) #view DataFrame print (df) team position points 0 AG 15 1 AG 22 2 AF 24 3 AF 25 4 AF 20 5 BG 35 6 BG 34 7 BG 19 8 BG 14 9 BF 12
例 1: 変数ごとにグループ化された出現回数をカウントする
次のコードは、 groupby()関数とsize()関数を使用して、チーム列内の値の出現をカウントする方法を示しています。
#count occurrences of each value in team column
df. groupby (' team '). size ()
team
AT 5
B5
dtype: int64
結果から、値 A と B が両方ともチーム列に5回出現していることがわかります。
例 2:複数の変数によってグループ化された出現回数をカウントする
次のコードは、 groupby() 関数とsize()関数を使用して、チーム列とポジション列の値の組み合わせごとに値の出現回数をカウントする方法を示しています。
#count occurrences of values for each combination of team and position
df. groupby ([' team ', ' position ']). size ()
team position
AF3
G2
BF 1
G4
dtype: int64
結果から次のことがわかります。
- チームAとポジションFは3回登場します。
- チームAとポジションGは2回登場します。
等々。
例 3:複数の変数でグループ化された出現回数をカウントし、並べ替える
次のコードは、 groupby() 関数とsize()関数を使用して、チーム列とポジション列の値の組み合わせごとに値の出現をカウントし、カウントで並べ替える方法を示しています。
#count occurrences for each combination of team and position and sort
df. groupby ([' team ', ' position ']). size (). sort_values (ascending= False )
team position
BG 4
AF3
G2
BF 1
dtype: int64
出力には、チームとポジションの値の各組み合わせのカウントが、カウントの降順で並べ替えられて表示されます。
注: 数値で昇順に並べ替えるには、 sort_values()関数のascending=Falseを削除するだけです。
追加リソース
次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。
Pandas GroupBy を使用して一意の値をカウントする方法
Pandas Groupby に関数を適用する方法
Pandas GroupBy から棒グラフを作成する方法