3

我试图理解 pandas 中下/上百分位数的计算,但有点困惑。这是它的示例代码和输出。

test = pd.Series([7, 15, 36, 39, 40, 41])
test.describe()

输出:

在此处输入图像描述

我只对 25%、75% 的百分位数感兴趣。我想知道 pandas 使用哪种方法来计算它们?

参考https://en.wikipedia.org/wiki/Quartile文章,结果不同如下:

在此处输入图像描述

那么 pandas 用什么统计/数学方法来计算百分位数呢?

4

2 回答 2

6

正如我在评论中提到的,我终于通过尝试from pandas.core.algorithms import quantile使用quantile@Abdou 建议的函数来弄清楚它是如何工作的。

我不能仅仅通过打字来解释它,因此我只会在给定的例子中做 25% 和 75% 的例子。这是简短(可能很差)的解释:

对于示例列表[7, 15, 36, 39, 40, 41]分位数如下方式:

7 -> 0%

15 -> 20%

36 -> 40%

39 -> 60%

40 -> 80%

41 -> 100%

由于我们要找到 25% 的百分位数,因此它将在 15 到 36 之间,而且,它是 20% + 5% = 15 + (36-15)/4 = 15 + 5.25 = 20.25。

使用(36-15)/4,因为15和36之间的距离是40% - 20% = 20%,所以我们除以4得到5%。

同样的方法我们可以找到 75%。

60% + 15% = 39 + 3*(40-39)/4 = 39.75

而已。我真的很抱歉解释不好

注意:感谢@shin 在评论中提到的更正。

于 2017-01-19T17:25:45.370 回答
1

如果未提供,它会执行[series.quantile(x) for x in percentiles]百分位数。percentiles = np.array([0.25, 0.5, 0.75])

你可以在pandas/pandas/core/generic.py中看到

所以它正在使用: http: //pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.quantile.html

于 2017-01-19T14:43:35.213 回答