python求分位数,python拆分四位数
最近在学习python数据分析的时候,遇到了四分位数计算的问题。因为四分位数计算的公式不一致,所以结果不一样。被坑的百度只给出了一种计算方法,容易让新手迷惑,所以总结如下:
计算方法
确定三个四分位数:
按最小的方法排序,然后用下面的方法。
方法:N 1法
Q1的位置=(n ^ 1)0.25
Q2的位置=(n ^ 1)0.5
Q3的位置=(n ^ 1)0.75
n代表数据的数据数。
以上是常用的n 1法。还有n-1法。
方法:N-1法
Q1的位置=1 (n-1)x 0.25
Q2的位置=1 (n-1)x 0.5
Q3的位置=1(n-1)0.75
当位置结果为小数时,两个位置的数字分别乘以小数和(1- decimal)后相加。例如,当结果为6.25时,使用第六个位置的数字*0.25和第七个位置的数字*0.75得到结果。
下面是一个例子。
例1(奇数)假设有一组数据6,7,15,36,39,40,41,42,43,47,49。这个数据已经从小到大搜索过了,不需要再排序了。如果没有搜索到,需要先排序。
1.以下是根据公式(n 1)计算的
第一个四分位数(下四分位数):(11 1)/4=3,表示它在第三个位置,所以是15,也就是Q1=15。
中位数:(11 ^ 1)/4 * 2=6,所以是40。
第三和第四四分位数(上四分位数):(11 1)/4*3=9,所以是43。
到目前为止,Q1=15,Q2=40,Q3=43。
2.根据下面的公式(n-1)计算。
第一个四分位数(下四分位数):1 (11-1)x 0.25=3.5,那么Q1=15x0.5 36x0.5=25.5
中位数:1 (11-1)x 0.5=6,那么Q2=15x0.5 36x0.5=40。
第三个四分位数(上四分位数):1 (11-1)x 0.75=8.5,则Q3=42x0.5 43x0.5=42.5。
下面的计算是用python实现的。
1将熊猫作为pd2 s1=pd导入。系列([6,7,15,36,39,40,41,42,43,47,49])3 s1.describe()
结果如下:
计数11.000000平均33.1818 STD 15.73362分钟6.000000
25% 25.500000
50% 40.000000
75% 42.500000 max 49.000000 type:float 64
可以看到python运行的结果是Q1=25.5 Q2=40 Q3=42.5。
结果和n-1方法一样,说明python用的是这种方法。
示例2(偶数)
1 import numpy as np2 import pandas as pd3 ser _ obj=PD。Series([1,2,3,4,5,6])4 ser_obj.describe()
1.以下是根据公式(n 1)计算的
第一个四分位数(下四分位数):(6 ^ 1)/4=1.75,表示处于1.75的位置,所以是1 * 0.25 ^ 2 * 0.75,即Q1=1.75。
中位数:(6 ^ 1)/4 * 2=3.5,所以是3*0.5 4*0.5=3.5。
第三和第四四分位数(上四分位数):(6 ^ 1)/4 * 3=5.25,所以是5*0.75 6*0.25=5.25。
此时,Q1=1.75,Q2=3.5,Q3=5.25。
2.根据下面的公式(n-1)计算。
第一个四分位数(下四分位数):1 (6-1)x 0.25=2.25,那么Q1=2x0.75 3x0.25=2.25
中位数:1 (6-1)x 0.5=3.5,那么Q2=3x0.5 4x0.5=3.5。
第三个四分位数(上四分位数):1 (6-1)x 0.75=4.75,那么Q3=4*0.25 5*0.75=4.75。
下面的计算是用python实现的。
数6.000000
平均值3.500000
标准1.870829
最低1000000
25% 2.250000
50% 3.500000
75% 4.750000
最大6.000000
所以熊猫用n-1法,人一般用n-1法。
原文:https://www.cnblogs.com/s愤怒的铅笔-ahujhc/p/12353251.html
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。