パンダでグループごとの中央値を見つける方法
次の基本構文を使用して、pandas でグループごとの中央値を計算できます。
df. groupby ([' group_variable '])[' value_variable ']. median (). reset_index ()
次の構文を使用して、複数の列でグループ化された中央値を計算することもできます。
df. groupby ([' group1 ', ' group2 '])[' value_variable ']. median (). reset_index ()
次の例は、この構文を実際に使用する方法を示しています。
例 1: グループごとに中央値を求める
次のパンダ DataFrame があると仮定します。
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'], ' points ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame df team position points rebounds 0 A G 5 11 1 A G 7 8 2 A F 7 10 3 A F 9 6 4 B G 12 6 5 B G 9 5 6 B F 9 9 7 B F 4 12
次のコードを使用して、チームごとにグループ化された「ポイント」列の中央値を見つけることができます。
#calculate median points by team
df. groupby ([' team '])[' points ']. median (). reset_index ()
team points
0 to 7.0
1 B 9.0
結果から次のことがわかります。
- チーム A の選手が獲得した得点の中央値は7です。
- チーム B のプレーヤーが獲得した得点の中央値は9です。
2 つの変数の中央値を一度に見つけることもできることに注意してください。
#calculate median points and median rebounds by team
df. groupby ([' team '])[[' points ', ' rebounds ']]. median ()
team points rebounds
0 to 7.0 9.0
1B 9.0 7.5
例 2: 複数のグループによる中央値の検索
次のコードは、チームとポジションごとにグループ化された「ポイント」列の中央値を見つける方法を示しています。
#calculate median points by team
df. groupby ([' team ', ' position '])[' points ']. median (). reset_index ()
team position points
0 A F 8.0
1 A G 6.0
2 B F 6.5
3 B G 10.5
結果から次のことがわかります。
- チーム A のポジション「F」の選手が獲得した得点の中央値は8です。
- チーム A のポジション「G」の選手が獲得したポイントの中央値は6です。
- チーム B のポジション「F」の選手が獲得した得点の中央値は6.5です。
- チーム B のポジション「G」の選手が獲得したポイントの中央値は10.5です。
追加リソース
次のチュートリアルでは、パンダで他の一般的な機能を実行する方法を説明します。
Pandas でグループごとの最大値を見つける方法
パンダでグループごとの合計を見つける方法
Pandas でグループごとに分位数を計算する方法