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.05.0です。
  • チーム 2 のスコアの第 1 四分位数と第 3 四分位数は、それぞれ2.03.0です。

追加リソース

次のチュートリアルでは、パンダで他の一般的な機能を実行する方法を説明します。

Pandas でグループごとの最大値を見つける方法
パンダの集団目撃数を数える方法
Pandas で列の平均を計算する方法

コメントを追加する

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