Pandas でグループごとの最大値を見つける方法


多くの場合、pandas DataFrame 内のグループごとの最大値を見つけたい場合があります。

幸いなことに、これは次の構文でgroupby()関数とmax()関数を使用することで簡単に実行できます。

 df. groupby (' column_name '). max ()

このチュートリアルでは、次の 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: 変数によってグループ化された複数の列の最大値

次のコードは、DataFrame 内の変数によってグループ化された複数の列の最大値を検索する方法を示しています。

 #find max values of points and rebounds, grouped by team
df. groupby (' team '). max (). reset_index ()


        team points rebounds
0 to 24 11
1 B 27 7
2 C 13 12

結果から次のことがわかります。

  • チーム A の最大得点値は 24、最大リバウンド値は 11 です。
  • チーム B の最大得点値は 27、最大リバウンド値は 7 です。
  • チーム C の最大ポイント値は 13、最大リバウンド値は 12 です。

インデックスが元のデータフレームのインデックスと一致することを確認するために、 reset_index()関数を使用したことに注意してください。

例 2:変数によってグループ化された単一列の最大値

次のコードは、単一の変数でグループ化された単一の列の最大値を見つける方法を示しています。

 #find max value of points, grouped by team
df. groupby (' team ')[' points ']. max (). reset_index ()

        team points
0 to 24
1 B 27
2 C 13

例 3:最大値による並べ替え

sort_values()関数を使用して最大値を並べ替えることもできます。

ascending=Falseを指定すると、最大から最小の順に並べ替えることができます。

 #find max value by team, sort descending
df. groupby (' team ')[' points ']. max (). reset_index (). sort_values ([' points '], ascending= False )


        team points
1 B 27
0 to 24
2 C 13

または、 ascending=Trueを指定して、最小から最大の順に並べ替えることもできます。

 #find max value by team, sort ascending 
df. groupby (' team ')[' points ']. max (). reset_index (). sort_values ([' points '], ascending= True ) 

        team points
2 C 13
0 to 24
1 B 27

追加リソース

Pandasで列の合計を計算する方法
Pandas で列の平均を計算する方法
Pandasで列の最大値を見つける方法

コメントを追加する

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