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