Pandasでグループごとの最小値を見つける方法
次のメソッドを使用して、pandas DataFrame 内のグループごとの最小値を見つけることができます。
方法 1: 少なくとも 1 つの列でグループ化する
df. groupby (' group_column ')[' values_column ']. min ()
方法 2: 複数の列を最小値でグループ化する
df. groupby (' group_column ')[' values_column1 ', ' values_column2 ']. min ()
次の例は、次の pandas DataFrame で各メソッドを実際に使用する方法を示しています。
import pandas as pd #create pandas DataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'C', 'C'], ' points ':[24, 23, 27, 11, 14, 8, 13], ' rebounds ': [11, 8, 7, 6, 6, 5, 12]}) #display DataFrame print (df) team points rebounds 0 to 24 11 1 to 23 8 2 B 27 7 3 B 11 6 4 B 14 6 5 C 8 5 6 C 13 12
例 1: 最小 1 列によるグループ化
次のコードは、チーム列ごとにグループ化されたポイント列の最小値を見つける方法を示しています。
#find minimum value of points, grouped by team df. groupby (' team ')[' points ']. min () team At 23 B 11 C 8 Name: points, dtype: int64
結果から次のことがわかります。
- チーム A の最小ポイント値は23です。
- チーム B の最小ポイント値は11です。
- チーム C の最小ポイント値は8です。
例 2:複数の列の最小値によるグループ化
次のコードは、チーム列ごとにグループ化されたポイント列とリバウンド列の最小値を見つける方法を示しています。
#find minimum value of points and rebounds, grouped by team df. groupby (' team ')[[' points ', ' rebounds ']]. min () rebound points team At 23 8 B 11 6 C 8 5
結果から次のことがわかります。
チームA:
- 最小ポイント: 23
- 最小リバウンド: 8
チームB:
- 最低ポイント: 11
- 最小リバウンド: 6
チームC:
- 最小ポイント: 8
- 最小バウンス: 5
注: 値列を指定するときは二重括弧を使用することが重要です。そうしないと、エラーが発生する可能性があります。
追加リソース
次のチュートリアルでは、他の一般的なパンダのタスクを実行する方法について説明します。
Pandasで列の合計を計算する方法
Pandas で列の平均を計算する方法
Pandasで列の最大値を見つける方法