如何在 python 中计算十分位数:带有示例
在统计学中,十分位数是将数据集分为频率相等的十组的数字。
第一个十分位数是所有数据值的 10% 低于的点。第二个十分位数是所有数据值的 20% 低于的点,依此类推。
我们可以使用以下语法在 Python 中计算数据集的十分位数:
import numpy as np n.p. percentile (var, np. arange (0, 100, 10))
下面的例子展示了如何在实际中使用这个功能。
示例:在 Python 中计算十分位数
以下代码展示了如何创建一个包含 20 个值的假数据集,然后计算该数据集的十分位数值:
import numpy as np
#createdata
data = np. array ([56, 58, 64, 67, 68, 73, 78, 83, 84, 88,
89, 90, 91, 92, 93, 93, 94, 95, 97, 99])
#calculate deciles of data
n.p. percentile (data, np. arange (0, 100, 10))
array([56., 63.4, 67.8, 76.5, 83.6, 88.5, 90.4, 92.3, 93.2, 95.2])
十分位的解释方法如下:
- 所有数据值中有 10% 小于63.4
- 所有数据值中有 20% 小于67.8 。
- 所有数据值中有30%小于76.5 。
- 所有数据值中有 40% 小于83.6 。
- 所有数据值中有 50% 小于88.5 。
- 所有数据值中有 60% 小于90.4 。
- 所有数据值中有 70% 小于92.3 。
- 所有数据值中的 80% 小于93.2 。
- 所有数据值中的 90% 都小于95.2 。
请注意,输出 (56) 的第一个值仅指示数据集的最小值。
示例:在 Python 中将值置于十分位数中
要将每个数据值放入十分位数,我们可以使用 pandas qcut函数。
以下是如何将此函数用于我们在上一个示例中创建的数据集:
import pandas as pd
#create data frame
df = pd. DataFrame ({' values ': [56, 58, 64, 67, 68, 73, 78, 83, 84, 88,
89, 90, 91, 92, 93, 93, 94, 95, 97, 99]})
#calculate decile of each value in data frame
df[' Decile '] = pd. qcut (df[' values '], 10, labels= False )
#display data frame
df
values Decile
0 56 0
1 58 0
2 64 1
3 67 1
4 68 2
5 73 2
6 78 3
7 83 3
8 84 4
9 88 4
10 89 5
11 90 5
12 91 6
13 92 6
14 93 7
15 93 7
16 94 8
17 95 8
18 97 9
19 99 9
结果解释方式如下:
- 数据值 56 介于百分位数 0% 和 10% 之间,因此它位于十分位数0中。
- 数据值 58 介于百分位数 0% 和 10% 之间,因此它位于十分位数0中。
- 数据值 64 位于 10% 和 20% 百分位数之间,因此它位于十分位数1中。
- 数据值 67 落在 10% 和 20% 百分位数之间,因此它落入十分位数1 。
- 数据值 68 落在 20% 和 30% 百分位数之间,因此它落入十分位数2 。
等等。