python教程,如何设置dataframe的describe结果的分位数?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
本文依然讨论dataframe
的describe
方法的结果,当被统计的数据为数字类型的时候,统计描述的结果中其中有个25%
/50%
/75%
的分位数概念,这个分位数它实际上是可以定制的。
大家好,这里是苏南大叔的“程序如此灵动”博客,这里记录苏南大叔的编程经验文章。本文测试环境:win10
,python@3.11.0
。
正常分位数
可以参考下面的文章,正常来说,对dataframe
进行.describe()
会返回以下分位数:25%
/50%
/75%
。
import pandas as pd
data_url = "http://download.tensorflow.org/data/iris_training.csv"
column_names = ["萼长", "萼宽", "瓣长", "瓣宽", "种类"]
df = pd.read_csv(data_url, header=0, names=column_names)
print(df.describe())
输出:
萼长 萼宽 瓣长 瓣宽 种类
count 120.000000 120.000000 120.000000 120.000000 120.000000
mean 5.845000 3.065000 3.739167 1.196667 1.000000
std 0.868578 0.427156 1.822100 0.782039 0.840168
min 4.400000 2.000000 1.000000 0.100000 0.000000
25% 5.075000 2.800000 1.500000 0.300000 0.000000
50% 5.800000 3.000000 4.400000 1.300000 1.000000
75% 6.425000 3.300000 5.100000 1.800000 2.000000
max 7.900000 4.400000 6.900000 2.500000 2.000000
定制分位数
这些分位数的计算方式是:以min
为0%
,max
为100%
,进而按比例计算得到对应的分位数。那么,这些百分比其实是可以定制的。定制的方式就是:在.describe()
方法中传递个参数percentiles
,其类型是个list
,也就是说传递的数据是个[]
。
df.describe(percentiles=[])
测试代码:
import pandas as pd
data_url = "http://download.tensorflow.org/data/iris_training.csv"
column_names = ["萼长", "萼宽", "瓣长", "瓣宽", "种类"]
df = pd.read_csv(data_url, header=0, names=column_names)
print(df.describe(percentiles=[0.3,0.8]))
print(df.describe(percentiles=[0.3,0.5,0.8]))
值得特殊说明的是:
- 其中的
50%
【特殊的分位数叫做中位数】是必然被输出。 0%
和100%
可以被输出,虽然和min
、max
意义重复。- 超出上述范围的数据,比如
120%
,是会引发报错输出的。
结束语
中位数50%
是个特殊的分位数,它和min
、max
一样是被固定下来不变的。更多文章,请参考苏南大叔的博客文章:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。