改变四分位数范围

问题描述 投票:0回答:1

我有一些数据

a = pd.DataFrame([1,22,34,55,66,75,2,7,8,9,99,70,45,56,22,12,5,9,3,5,89,67,42,21])

当我使用describe函数时,我得到以下结果:

a.describe()
Out[6]: 
               0
count  24.000000
mean   34.333333
std    30.786314
min     1.000000
25%     7.750000
50%    22.000000
75%    58.500000
max    99.000000

我得到的结果显示数据在0到25%,25%到50%和50%到75%之间。我想得到的结果是它显示10%,20%30%的结果......等等。请让我知道如何获得这些结果。

python quartile
1个回答
0
投票

您可以通过给出所需百分比的参数quantile来使用Numpy q,例如:

np.quantile(a,q=np.linspace(0.1,1,num=10))
array([ 3.6,  6.2,  8.9, 13.8, 22. , 40.4, 55.1, 66.4, 73.5, 99. ])

分位数范围为10%至100%:

np.linspace(0.1,1,num=10)
array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])

或使用Numpy percentile

np.percentile(a,q=np.linspace(10,100,num=10))
array([ 3.6,  6.2,  8.9, 13.8, 22. , 40.4, 55.1, 66.4, 73.5, 99. ])

百分位数范围为10%至100%:

np.linspace(10,100,num=10)
array([ 10.,  20.,  30.,  40.,  50.,  60.,  70.,  80.,  90., 100.])
© www.soinside.com 2019 - 2024. All rights reserved.