Pandas:如何使用具有特定百分位数的describe()
您可以使用describe()函数为pandas DataFrame中的变量生成描述性统计数据。
默认情况下,pandas 计算变量的第 25、50 和 75 个百分位数。
但是,您可以在describe()函数中使用percentiles参数来指定要计算的确切百分位数。
以下示例展示了如何在实践中通过以下 pandas DataFrame 使用此参数:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
' points ': [18, 22, 19, 14, 14, 11, 20, 28],
' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})
#view DataFrame
print (df)
team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6
5 F 11 9 5
6 G 20 9 9
7:28 4 12
示例 1:使用带有默认百分位数的describe()
以下代码展示了如何使用describe()函数计算DataFrame中每个数值变量的描述性统计数据:
#calculate descriptive statistics for each numeric variable
df. describe ()
points assists rebounds
count 8.000000 8.00000 8.000000
mean 18.250000 7.75000 8.375000
std 5.365232 2.54951 2.559994
min 11.000000 4.00000 5.000000
25% 14,000000 6,50000 6,000000
50% 18.500000 8.00000 8.500000
75% 20.500000 9.00000 10.250000
max 28.000000 12.00000 12.000000
请注意, describe()函数默认计算每个变量的第 25、50 和 75 个百分位数。
示例 2:将describe() 与自定义百分位数结合使用
以下代码演示如何使用带有百分位数参数的describe()函数来计算DataFrame中每个数值变量的第30、60和90个百分位数:
#calculate custom percentiles for each numeric variable
df. describe (percentiles=[ .3 , .6 , .9 ])
points assists rebounds
count 8.000000 8.00000 8.000000
mean 18.250000 7.75000 8.375000
std 5.365232 2.54951 2.559994
min 11.000000 4.00000 5.000000
30% 14.400000 7.00000 6.200000
50% 18.500000 8.00000 8.500000
60% 19.200000 9.00000 9.200000
90% 23.800000 9.90000 11.300000
max 28.000000 12.00000 12.000000
请注意, describe()函数返回每个数值变量的第 30、60 和 90 个百分位数。
注意: describe()函数还返回第 50 个百分位,因为它代表每个变量的中值,并且是由describe()函数计算的默认指标之一。
示例 3:使用不带百分位数的describe()
以下代码演示如何使用带有percentiles=[]参数的describe()函数来计算DataFrame中每个数值变量的百分位数:
#calculate no percentiles for each numeric variable
df. describe (percentiles=[])
points assists rebounds
count 8.000000 8.00000 8.000000
mean 18.250000 7.75000 8.375000
std 5.365232 2.54951 2.559994
min 11.000000 4.00000 5.000000
50% 18.500000 8.00000 8.500000
max 28.000000 12.00000 12.000000
请注意,不再计算每个变量的第 25 个和第 75 个百分位数。
请注意,第 50 个百分位数始终包含在结果中,因为它代表每个变量的中值。
其他资源
以下教程解释了如何在 pandas 中执行其他常见操作:
Pandas:如何按组使用describe()
Pandas:如何使用describe()并删除科学记数法
Pandas:如何计算平均值、中位数和众数