在本文中:
pandas如何计算四分位数?
这是@perl关于quantile()函数工作原理的解释:
df = pd.DataFrame([5,7,10,15,19,21,21,22,22,23,23,23,23,23,24,24,24,24,25], columns=['val'])
让我们考虑0.25(当然也适用于0.75):元素数量应为(len(df)-1)*0.25 = (19-1)*0.25 = 4.5
,因此我们位于第4个元素(即19,从0开始计数)和第5个元素(即21)之间。因此,我们有i=19,j=21,分数=0.5,i + (j-i) * fraction = 20。
我仍然无法理解quantile()函数的工作原理。
所有quantiles的公式都建议我们取q * (n+1),其中q是要计算的quantile。然而,在@perl的解释中,使用的公式是q * (n-1)。为什么是(n-1)而不是(n+1)?
其次,为什么@perl使用分数0.5?
如果数据点的总数是偶数还是奇数,量化计算方法是否有区别?*
如果我们取两个数据框:
df1 = pd.DataFrame([2,4,6,8,10,12]) # n=6 (even)
df2 = pd.DataFrame([1,3,5,7,9]) # n=5 (odd)
他们各自的分位数如下(附有图片):分位数图表:
我无法找出以上两种情况中如何计算分位数。
q -> df1 -> df2
0.2 -> 4.0 -> 2.6
0.25 -> 4.5 -> 3.0
0.5 -> 7.0 -> 5.0
0.75 -> 9.5 -> 7.0
0.8 -> 10.0 -> 7.4
可以有人解释一下吗?我将非常感激。
提前致谢。
Vineet