基本上pandas的describe函数大家都会使用,我之前也是,直接data.describe(),就把数据的统计信息给打印出来了。但是今天因某些原因研究了一下describe的参数,才知道其实describe还有很多其他的作用。
这是官方文档:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.describe.html
截个图,可以看出它有三个参数。
第一个percentiles,这个参数可以设定数值型特征的统计量,默认是[.25, .5, .75],也就是返回25%,50%,75%数据量时的数字,但是这个可以修改的,举例如下:这个数据是kaggle的泰坦尼克数据集。
train_df['Parch'].describe(percentiles=[.75, .8])
Out[10]:
count 891.000000
mean 0.381594
std 0.806057
min 0.000000
50% 0.000000
75% 0.000000
80% 1.000000
max 6.000000
Name: Parch, dtype: float64
Parch这一列代表父母与孩子的比例,这就说明有超过75%的乘客没有和他们的父母或者孩子一起去。可以看出这个参数在分析数值型特征的分布时十分有用。
第二个参数:include,这个参数默认是只计算数值型特征的统计量,当输入include=['O'],会计算离散型变量的统计特征,(唉,羞愧,学了这么久这才知道),举个例子如下:
train_df.describe(include=['O'])
Out[13]:
Name Sex Ticket Cabin Embarked
count 891 891 891 204 889
unique 891 2 681 147 3
top Panula, Master. Eino Viljami male 1601 G6 S
freq 1 577 7 4 644
可以看出它直接给出了非空数量count,唯一值种类unique,出现最多的类型top和出现次数freq,简直是贴心。这对以后提特征绝对是个便利。
此外当你传参数是‘all’的时候,会把数值型和离散型特征的统计都进行显示。
第三个参数的设计就更贴心了,第二个参数是你可以指定选那些,第三个参数就是你可以指定不选哪些,人性化设计。这个参数默认不丢弃任何列,相当于无影响。