Pandas でグループごとに分位数を計算する方法
次の基本構文を使用して、Pandas でグループごとに分位数を計算できます。
df. groupby (' grouping_variable '). quantile ( .5 )
次の例は、この構文を実際に使用する方法を示しています。
例 1: グループごとに分位数を計算する
次のパンダ データフレームがあるとします。
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2], ' score ': [3, 4, 4, 5, 5, 8, 1, 2, 2, 3, 3, 5]}) #view first five rows df. head () team score 0 1 3 1 1 4 2 1 4 3 1 5 4 1 5
次のコードは、「チーム」列でグループ化された「ポイント」列の値の 90 パーセンタイルを計算する方法を示しています。
df. groupby (' team '). quantile ( .90 ) score team 1 6.5 2 4.0
結果を解釈する方法は次のとおりです。
- チーム 1 の「ポイント」の 90 パーセンタイルは6.5です。
- チーム 2 の「ポイント」の 90 パーセンタイルは4.0です。
例 2: グループごとに複数の分位数を計算する
次のコードは、グループごとに複数の分位数を一度に計算する方法を示しています。
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2], ' score ': [3, 4, 4, 5, 5, 8, 1, 2, 2, 3, 3, 5]}) #create functions to calculate 1st and 3rd quartiles def q1(x): return x. quantile ( 0.25 ) def q3(x): return x. quantile ( 0.75 ) #calculate 1st and 3rd quartiles by group vals = {' score ': [q1, q3]} df. groupby (' team '). agg (vals) score q1 q3 team 1 4.0 5.0 2 2.0 3.0
結果を解釈する方法は次のとおりです。
- チーム 1 のスコアの第 1 四分位数と第 3 四分位数は、それぞれ4.0と5.0です。
- チーム 2 のスコアの第 1 四分位数と第 3 四分位数は、それぞれ2.0と3.0です。
追加リソース
次のチュートリアルでは、パンダで他の一般的な機能を実行する方法を説明します。