pandas describe() 百分位值对我们的数据有何影响?

数据挖掘 Python 熊猫
2021-09-27 11:21:35

假设这是我的数据框

x=[0.09, 0.95, 0.93, 0.93, 0.34, 0.29, 0.14, 0.23, 0.91, 0.31, 0.62,
       0.29, 0.71, 0.26, 0.79, 0.3 , 0.1 , 0.73, 0.63, 0.61]

x=pd.DataFrame(x)

当我们x.describe()这个数据框我们得到这样的结果

>>> x.describe()
               0
count  20.000000
mean    0.50800
std     0.30277
min     0.09000
25%     0.28250
50%     0.47500
75%     0.74500
max     0.95000

25,50 和 75 个百分位值是什么意思?是不是说 x 中 25% 的值小于 0.28250?

2个回答

它描述了数据的分布:50 应该是描述数据“中间”的值,也称为中位数。25、75是数据上/下四分之一的边界。您可以了解数据的偏差程度。请注意,平均值高于中位数,这意味着您的数据是右的。

尝试:

import pandas as pd
x=[1,2,3,4,5]
x=pd.DataFrame(x)
x.describe()

首先,看起来,描述表不是您的数组 x 的描述。

然后,您需要对数组 (x) 进行排序,然后计算百分比的位置(在.describe方法 p 中为 0.25、0.5 和 0.75),

在你的例子中:

sorted_x = [0.09, 0.1 , 0.14, 0.23, 0.26, 0.29, 0.29, 0.3 , 0.31, 0.34, 0.61, 0.62, 0.63, 0.71, 0.73, 0.79, 0.91, 0.93, 0.93, 0.95]

当我们将列表划分为 25% 和 75% 时,可以获得位于第 25% 的元素,|这里显示的是 25%:

sorted_x = [0.09, 0.1 , 0.14, 0.23, 0.26,**|** 0.29, 0.29, 0.3 , 0.31, 0.34, 0.61, 0.62, 0.63, 0.71, 0.73, 0.79, 0.91, 0.93, 0.93, 0.95]

所以该值计算为0.26+(0.29-0.26)*34这等于0.28250000000000003

一般来说 ,百分位数为您提供位于该数据百分比中的实际数据(无疑是在数组排序之后)