【发布时间】:2017-01-26 19:42:19
【问题描述】:
对于数据框中的给定数据集,当我应用describe 函数时,我会得到包括最小值、最大值、25%、50% 等在内的基本统计数据。
例如:
data_1 = pd.DataFrame({'One':[4,6,8,10]},columns=['One'])
data_1.describe()
输出是:
One
count 4.000000
mean 7.000000
std 2.581989
min 4.000000
25% 5.500000
50% 7.000000
75% 8.500000
max 10.000000
我的问题是:计算 25% 的数学公式是什么?
1) 据我所知,是:
formula = percentile * n (n is number of values)
在这种情况下:
25/100 * 4 = 1
所以第一个位置是数字 4 但根据描述函数它是5.5。
2) 另一个例子是 - 如果你得到一个整数然后取 4 和 6 的平均值 - 这将是 5 - 仍然不匹配由 describe 给出的5.5。
3) 另一个教程说 - 你取两个数字之间的差 - 乘以 25% 并添加到较小的数字:
25/100 * (6-4) = 1/4*2 = 0.5
将其添加到较低的数字:4 + 0.5 = 4.5
仍然没有收到5.5。
有人可以澄清一下吗?
【问题讨论】:
-
这不是
(max - min)/4吗?所以 10-4 = 6 然后除以 4 得到 1.5,然后将其设置为 4 和 10 之间的间隔? -
我认为它内部使用了numpy,在这里查看百分号代码github.com/numpy/numpy/blob/…
-
开源的美妙之处在于您可以自己检查代码。根据code of
describe,它调用系列'quantilemethod。文档字符串有你的答案。
标签: python pandas percentile