首页 > Python进阶方向应用 > Pandas 入门教程 > Pandas 统计描述操作

Pandas 统计描述操作

1. 前言

上一节我们学习了 Pandas 库的分组聚合操作,通过聚合函数对分组后的数据集进行了描述性的统计分析,对于各组数据的分析起到了很好的帮助作用,那 Pandas 库中除了上节我们讲到的一些聚合分析函数,还有哪些实用性较高的统计描述操作方法呢,本节课我们将对统计描述函数展开学习。

2. 描述性统计函数

下面我们列举了几个常用的重要函数,上一节已经讲述了 count () , sum () , mean () 函数,这里我们将不再讲述:

函数名 说明
min 计算最小值
max 计算最大值
cumsum 计算累计总和
describe 计算汇总统计

下面我们通过具体的代码数据实例看一下各个函数的应用。

1. min()max() 函数

这两个函数分别用于计算指定数据集中的最小值和最大值,默认的 axis=0 ,按列进行计算。

# 导入pandas包
import pandas as pd
# 初始化数据
df1=pd.DataFrame([[96,92],[85,None],[69,90]],
                 index=[['语文','数学','英语']],
                 columns=[['期中考试','期末考试']])
print(df1)
# --- 输出结果 ---
    期中考试  期末考试
语文   96     92
数学   85     89
英语   69     90

# min 求数据集的最小值
df1.min()
# --- 输出结果 ---
期中考试    69
期末考试    89

# max 求数据集的最大值
df1.max()
# --- 输出结果 ---
期中考试    96
期末考试    92

# 结果解析:通过 min() 和 max() 函数的操作,我们可以看到求出数据集中的最大值和最小值,默认是按列计算,也可以通过参数 axis=1 设置按行计算;

# max 求数据集的最大值 axis=1
df1.max(axis=1)
# --- 输出结果 ---
语文    96
数学    89
英语    90

2. cumsum() 函数

该函数用于计算累计数值总和,默认的 axis=0 ,按列进行计算,通过数据处理效果要区分和 sum () 函数的区别。

# 导入pandas包
import pandas as pd
# 初始化数据
df1=pd.DataFrame([[96,92,89,94],[85,89,91,90],[69,90,89,88]],
                 index=[['语文','数学','英语']],
                 columns=[['月考1','月考2','月考3','月考4']])
print(df1)
# --- 输出结果 ---
    月考1 月考2 月考3 月考4
语文  96   92   89   94
数学  85   89   91   90
英语  69   90   89   88

# cumsum 计算累计总和,默认是按列计算
df1.cumsum()
# --- 输出结果 ---
     月考1  月考2  月考3  月考4
语文  96    92    89     94
数学  181   181   180    184
英语  250   271   269    272
# sum 计算总和,默认是按列计算
df1.sum()
# --- 输出结果 ---
月考1    250
月考2    271
月考3    269
月考4    272

# 结果解析:cumsum() 函数是累计求和,默认是在列上计算,可以看到各个月考的行数据“数学”是“语文”加“数学”成绩的和,“英语”则是“语文”加“数学”加“英语”的和。而 sum() 函数则是计算每列数据的总和,对各行数据没有影响。

3. describe() 函数

该函数用于计算一些统计数据,提供数据集的基本信息,包括范围、大小、波动趋势等待,用于进一步数据的分析,该函数用于计算列数据。该函数有三个核心参数:

参数名 说明
percentile 可选参数,要包含在输出中的百分位数,在 0-1 之间,默认 [.25, .5, .75]
include 可选参数,包括的不同数据类型列表,默认只计算数值型,当为 all 时汇总的是所有列的数据;当为 object 时,汇总的是字符串列的数据;当为 number 时,汇总的是数字列的数据。
exclude 可选参数,排除的数据类型列表

下面我们通过代码操作数据集看一下详细的使用方法:

# 导入pandas包
import pandas as pd
# 初始化数据
df1=pd.DataFrame([[96,92,89,94,'A级'],[85,89,91,90,'C级'],[69,90,89,88,'B级']],
                 index=[['语文','数学','英语']],
                 columns=[['月考1','月考2','月考3','月考4','表现级别']])
print(df1)
# --- 输出结果 ---
   月考1 月考2 月考3 月考4 表现级别
语文  96  92  89  94    A级
数学  85  89  91  90    C级
英语  69  90  89  88    B级

# describe 函数
df1.describe()
# --- 输出结果 ---
         月考1        月考2        月考3       月考4
count   3.000000    3.000000    2.000000    3.000000
mean    83.333333   90.333333   90.000000   90.666667
std     13.576941   1.527525    1.414214    3.055050
min     69.000000   89.000000   89.000000   88.000000
25%     77.000000   89.500000   89.500000   89.000000
50%     85.000000   90.000000   90.000000   90.000000
75%     90.500000   91.000000   90.500000   92.000000
max     96.000000   92.000000   91.000000   94.000000
# 结果解析:可以看到 describe() 函数统计分析后,默认的是只计算数值型,包含了多种分析信息,count:数据数量,mean:平均值,std:标准差,min:最小值,25%,50%,75%:对应的百分位上的分位数(计算方式为最大值减去最小值乘以对应的百分位,再加上最小值),max:最大值。这些统计项能清晰的让我们了解一组数据集的数据情况,进而选择合适的分析模型进行分析。

# describe  设置include=‘all’
df1.describe(include='all')
# --- 输出结果 ---
        月考1        月考2       月考3        月考4       表现级别
count   3.000000    3.000000    3.000000    3.000000    3
unique  NaN         NaN         NaN         NaN         3
top     NaN         NaN         NaN         NaN         C级
freq    NaN         NaN         NaN         NaN         1
mean    83.333333   90.333333   89.666667   90.666667   NaN
std     13.576941   1.527525    1.154701    3.055050    NaN
min     69.000000   89.000000   89.000000   88.000000   NaN
25%     77.000000   89.500000   89.000000   89.000000   NaN
50%     85.000000   90.000000   89.000000   90.000000   NaN
75%     90.500000   91.000000   90.000000   92.000000   NaN
max     96.000000   92.000000   91.000000   94.000000   NaN
# 结果解析:通过设置 include='all' describe() 函数计算所有列的数据,并且针对字符串型的数据会有 unique:不同的值有多少;top:出现频率最高的;freq:重复的次数。

# describe 排除数值列 exclude=‘number’
df1.describe(exclude='number')
# --- 输出结果 ---
        表现级别
count    3
unique   3
top      C级
freq     1
# 结果解析:通过设置 exclude 排除数值列,可以看到最后的描述性统计只有字符串列的数据。

3. 小结

本节课程我们主要学习了 Pandas 库中用于统计描述的操作函数,帮助我们便捷的对数据集进行统计分析工作,并在此基础上开展进一步的数据分析工作。本节课程的重点如下:

  • 常用的描述性统计函数使用,尤其是 describe () 函数的使用。
本文来自互联网用户投稿,不拥有所有权,该文观点仅代表作者本人,不代表本站立场。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。
© 2023 PV138 · 站点地图 · 免责声明 · 联系我们 · 问题反馈