如何在 pandas 中按组计算分位数
您可以使用以下基本语法在 Pandas 中按组计算分位数:
df. groupby (' grouping_variable '). quantile ( .5 )
以下示例展示了如何在实践中使用此语法。
示例1:按组计算分位数
假设我们有以下 pandas DataFrame:
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
以下代码显示了如何计算“points”列中值的第 90 个百分位数,并按“team”列分组:
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 队得分的第一和第三四分位数分别为4.0和5.0 。
- 第 2 队得分的第一和第三四分位数分别是2.0和3.0 。
其他资源
以下教程解释了如何在 pandas 中执行其他常见功能: