1. 介绍
pandas 是基于numpy构建的含有更高级数据结构和工具的数据分析包,提供了高效地操作大型数据集所需的工具。pandas有两个核心数据结构 Series和DataFrame,分别对应了一维的序列和二维的表结构。而describe()函数就是返回这两个核心数据结构的统计变量。其目的在于观察这一系列数据的范围、大小、波动趋势等等,为后面的模型选择打下基础。
pandas.DataFrame.describe 的官方文档。
DataFrame.describe(percentiles=None, include=None, exclude=None)
# return: Series or DataFrame. Summary statistics of the Series or Dataframe provided.
它有三个参数:
percentiles
:这个参数可以设定数值型特征
的统计量,默认是[.25, .5, .75],也就是返回25%,50%,75%数据量时的数字,但是这个可以修改
的include
:这个参数默认是只计算数值型特征
的统计量,当输入include=[‘O’],会计算离散型变量的统计特征;exclude
:你可以指定不选哪些,人性化设计。这个参数默认不丢弃任何列
,相当于无影响。
2. 使用举例
2.1 使用一个series
数据进行分析
连续值
def describe_series():
int_data = pd.Series([1, 2, 3, 4])
print(int_data.describe())
结果:
count 4.000000
mean 2.500000
std 1.290994
min 1.000000
25% 1.750000
50% 2.500000
75% 3.250000
max 4.000000
这里由于我们的int_data
是一个连续值,所以我们得到的结果得格式就是:
count
:每一列非空值的数量mean
: 每一列的平均值std
:每一列的标准差min
:最小值25%
:25%分位数,排序之后排在25%位置的数50%
:50%分位数75%
:75%分位数max
:最大值
离散值
def describe_series():
string_data = pd.Series(['a', 'd', 'r', 't'])
print(string_data.describe())
结果:
count 4
unique 4
top a
freq 1
这里由于我们的string_data
是一个离散值,所以我们得到的结果得格式就是:
unique
:不重复的离散值数目,去重之后的个数top
: 出现次数最多的离散值freq
: 上述的top出现的次数
2.2 使用一个dataframe
数据进行分析
def describe_dataframe():
dataframe_data = pd.DataFrame({'name': pd.Categorical(['agou', 'ahua', 'amao']), 'age': [10, 20, 30], 'address': ['CN', 'USB', 'UK']})
print(dataframe_data)
# include='all',代表对所有列进行统计,如果不加这个参数,则只对数值列进行统计
desc = dataframe_data.describe(include='all')
print(desc)
结果:
name age address
0 agou 10 CN
1 ahua 20 USB
2 amao 30 UK
name age address
count 3 3.0 3
unique 3 NaN 3
top agou NaN CN
freq 1 NaN 1
mean NaN 20.0 NaN
std NaN 10.0 NaN
min NaN 10.0 NaN
25% NaN 15.0 NaN
50% NaN 20.0 NaN
75% NaN 25.0 NaN
max NaN 30.0 NaN
缺失值由NaN补上,如果为NaN,说明此列的信息不可以用这个统计变量进行统计的。注意,数值列和字母列是不一样的。