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で列の最大値を見つける方法

コメントを追加する

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