4.4 pandas的统计功能
Pandas拥有一组常用的数学和统计方法,可以对 Series 与 DataFrame 进行快速的描述性统计,如求和、平均数、最大值、方差等,是最基础也是最实用的统计方法。一般来说,这些方法采用轴参数axis,就像NumPy数组的统计方法,但轴可以通过名称或整数来指定,对于DataFrame而言:
- axis=0,默认,表示按行index统计
- axis=1,表示按列columns统计
按哪个axis,就是这个axis要动起来(类似被for遍历),其他的axis保持不动
Pandas的axis参数:
1、axis = 0
- 如果是单行操作,就是指某一行
- 如果是聚合操作,指的就是跨行
2、axis = 1
- 如果是单列操作,就是指某一列
- 如果是聚合操作,指的就是跨列
In [1]:
import numpy as np import pandas as pd
In [2]:
#读取学生信息 st = pd.read_excel('data/stinfo.xlsx',index_col=0) st.head(3)
Out[2]:
姓名 | 学号 | 出生日期 | 年龄 | 籍贯 | 性别 | 身高 | 体重 | linux | python | 网络 | 数据库 | IT基础 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 甲一 | 50 | 2001年1月1日 | 19 | 福田 | 男 | 172 | 69 | 92 | 90 | 82 | NaN | 80 |
1 | 乙二 | 51 | 1999年2月2日 | 21 | 龙岗 | 男 | 180 | 77 | 95 | 88 | 85 | NaN | 80 |
2 | 丙三 | 52 | 2002年3月3日 | 18 | 南山 | 女 | 160 | 49 | 85 | 91 | 93 | NaN | 80 |
In [3]:
st.ndim
Out[3]:
2
In [4]:
st.shape
Out[4]:
(11, 13)
In [5]:
st.size
Out[5]:
143
4.4.1 数值型特征的统计
数值型数据的描述性统计主要包括了计算数值型数据的完整情况、最小值、均值、中位数、最大值、四分位数、极差、标准差、方差、协方差和变异系数等。在NumPy库中一些常用的统计学函数如下表所示。
pandas库基于NumPy,自然也可以用这些函数对数据框进行描述性统计。
In [6]:
np.max(st['linux'])#统计linux列的最大值
Out[6]:
98
In [7]:
np.median(st['linux'])#统计linux列的中位数
Out[7]:
85.0
In [8]:
int(np.mean(st['身高']))#统计身高列的均值
Out[8]:
169
In [9]:
np.sort(st['体重'])#体重列排序
Out[9]:
array([48, 49, 50, 53, 56, 63, 69, 70, 75, 77, 82], dtype=int64)
- Pandas统计函数
Pandas内置很多数学计算方法,如计算均值 ,st['linux技术成绩'].mean()。
In [10]:
st['linux'].mean().astype(int)
Out[10]:
83
In [11]:
st['linux'].max()#统计linux列的最大值
Out[11]:
98
In [12]:
st['linux'].median()#统计linux列的中位数
Out[12]:
85.0
pandas提供的方法describe()能够一次性得出dataframe所有数值型特征的非空值数目、均值、四分位数、标准差等。返回一个有多个行的所有数值列的统计表,每个行是一个统计指标,对我们初步了解数据还是很有作用。
In [13]:
st.describe()
Out[13]:
学号 | 年龄 | 身高 | 体重 | linux | python | 网络 | 数据库 | IT基础 | |
---|---|---|---|---|---|---|---|---|---|
count | 11.000000 | 11.000000 | 11.000000 | 11.000000 | 11.000000 | 11.000000</ |