【pandas基础】--数据统计

这篇具有很好参考价值的文章主要介绍了【pandas基础】--数据统计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在进行统计分析时,pandas提供了多种工具来帮助我们理解数据。
pandas提供了多个聚合函数,其中包括均值、标准差、最大值、最小值等等。
此外,pandas还可以进行基于列的统计分析,例如通过groupby()函数对数据进行聚合,并计算每组的统计分析结果。

除了基本的统计分析之外,pandas还可以进行更高级的分析,例如基于时间序列的分析等。
总之,pandas是一个非常强大的数据处理工具,可以帮助我们更轻松地进行数据分析和探索。

1. 一般统计

拿到数据之后,第一步我们会通过一些常用的统计信息来大体了解下数据的整体情况。
pandas中常用的统计函数有:

  1. .sum():计算对象的总和
  2. .mean():计算对象的平均值
  3. .median():计算对象的中位数
  4. .max():计算对象的最大值
  5. .min():计算对象的最小值
  6. .count():计算对象数量
  7. .std():计算对象标准差
  8. .var():计算对象方差

通过agg函数可以一次将所有的统计信息分析出来。

import pandas as pd

df = pd.DataFrame(
    {
        "数学": [100, 88, 94, 76, 84],
        "语文": [98, 80, 86, 76, 90],
        "英语": [95, 91, 86, 95, 83],
    },
    index=["小红", "小明", "小汪", "小李", "小张"],
)

df.agg(["sum", "mean", "median","max", "min", "count", "std", "var"])

【pandas基础】--数据统计

2. 分组统计

如果要分析的数据集中不同的多个行存在同属于一个分类时,可以先分组之后再用上面的统计分析方法。
比如下面的示例,按年级分组统计的是同一个年级中所有学生的成绩情况,而按学生分组统计的则是该学生在各个年级阶段的成绩情况。

按年级分组统计:
agg函数除了可以指定统计函数,还可以指定统计的列,下面的示例只统计了语文和数学情况)

df = pd.DataFrame(
    {
        "姓名": ["小红", "小明", "小红", "小明", "小汪", "小汪"],
        "年级": ["初二", "初一", "初一", "初二", "初一", "初二"],
        "数学": [100, 88, 94, 76, 84, 78],
        "语文": [98, 80, 86, 76, 90, 88],
        "英语": [95, 91, 86, 95, 83, 65],
    },
)

agg_funcs = ["max", "min", "mean"]
df.groupby(by="年级").agg({"语文": agg_funcs, "数学": agg_funcs})

【pandas基础】--数据统计

按学生分组统计:

df.groupby(by="姓名").agg({"语文": agg_funcs, "数学": agg_funcs})

【pandas基础】--数据统计

3. 透视表

pandas透视表(Pivot Table)是数据分析中的一种非常强大的功能,可以实现数据的按列汇总、按行汇总、按列和行同时汇总、数据透视和数据分析等功能。

同样使用上一节中的示例数据,原始数据中,年级,姓名和分数混在一起,要看按人或者按年级查看成绩情况的时候,需要进行过滤和排序等操作。
【pandas基础】--数据统计

如果使用透视表的话,可以将原始数据中的某些列的值作为新的索引,某些列的值作为新的列,那么数据会更加一目了然。
另外,透视表的结果用来绘制折线图,柱状图等也非常方便。

年级作为索引,姓名作为列名的透视表:

df = pd.DataFrame(
    {
        "姓名": ["小红", "小明", "小红", "小明", "小汪", "小汪"],
        "年级": ["初二", "初一", "初一", "初二", "初一", "初二"],
        "数学": [100, 88, 94, 76, 84, 78],
        "语文": [98, 80, 86, 76, 90, 88],
        "英语": [95, 91, 86, 95, 83, 65],
    },
)

pd.pivot_table(df, values=["数学", "语文", "英语"], index=["年级"], columns=["姓名"])

【pandas基础】--数据统计

姓名作为索引,年级作为列名的透视表:

pd.pivot_table(df, values=["数学", "语文", "英语"], index=["姓名"], columns=["年级"])

【pandas基础】--数据统计

4. 同比和环比

同比和环比是统计中经常用到的概念,用来评估数据的变化情况。
同比一般指跟上一年度同一时期统计的数据的比较,环比一般指跟上一次统计的数据的比较。

原始数据如下(某同学初中三年每学期的平均分):

df = pd.DataFrame(
    {
        "年级": ["初一上", "初一下", "初二上", "初二下", "初三上", "初三下"],
        "平均分": [90, 85, 86, 80, 90, 88],
    },
)

df

【pandas基础】--数据统计

环比就是看每个学期比上个学期是否进步:

df["平均分环比"] = df["平均分"].pct_change(periods=1)
df

【pandas基础】--数据统计
第一条数据是NaN,因为它没有上一条数据可以参考。
pct_change 得出的数值就是同比增长的百分比,负数表示下降的百分比。

同比就是比较每个学年同学期的成绩变化,比如初二上初一上比较,初三下初二下比较等等。

df["平均分同比"] = df["平均分"].pct_change(periods=2)
df

【pandas基础】--数据统计
我们观察这个示例数据,同比环比的差别仅仅在于:同比是隔一个数据比较,而环比是相邻的数据比较。

所以,用pct_change来计算同比的时候,只要设置periods参数为2即可。
periods参数默认为1,所以其实计算环比的时候也可以不设置periods参数。

5. 总结回顾

本篇介绍的数据统计时常用的几种方法,其中分组统计透视表是使用比较频繁的。
上面的示例主要介绍统计的函数,假造的数据非常简单,其实在数据统计时,统计前清理数据,排序数据等才是耗费时间最长的过程。文章来源地址https://www.toymoban.com/news/detail-474368.html

到了这里,关于【pandas基础】--数据统计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SAS应用统计分析】数据的描述性统计分析

    声明:本文知识参考内容来自网络,如有侵权请联系删除。本文还参照了B站up主庄7的课程内容【公开课】数据分析与SAS【15课】 目录 实验原理 描述性统计量 1.反映数据集中趋势的特征量 2.反映数据离散程度的特征量 3.反映数据分布形状的特征量 数据的图形描述 直方图 箱线

    2024年02月01日
    浏览(36)
  • 【数据分析】统计量

    1. 均值、众数描述数据的集中趋势度量,四分位差、极差描述数据的离散程度。 2. 标准差、四分位差、异众比率度量离散程度,协方差是度量相关性。  期望值分别为E[X]与E[Y]的两个实随机变量X与Y之间的协方差Cov(X,Y)定义为: 从直观上来看,协方差表示的是两个变量总体误

    2024年02月11日
    浏览(31)
  • 用Python做数据分析之数据统计

    接下来说说数据统计部分,这里主要介绍数据采样,标准差,协方差和相关系数的使用方法。 1、数据采样 Excel 的数据分析功能中提供了数据抽样的功能,如下图所示。Python 通过 sample 函数完成数据采样。 2、数据抽样 Sample 是进行数据采样的函数,设置 n 的数量就可以了。函

    2024年02月07日
    浏览(37)
  • 数据科学、统计学、商业分析

    数据科学、统计学、商业分析是在各方面有着不同的侧重和方向的领域。  1.专业技能 数据科学(Data Science):数据科学涉及从大量数据中提取有价值的信息、模式和洞察力的领域。它使用多种技术和领域知识,如统计学、机器学习、数据库管理、数据可视化等,进行数据清

    2024年02月15日
    浏览(39)
  • 【大数据学习篇6】 Spark操作统计分析数据操作

    通过前面的文章安装好环境下面我们就可以开始来操作 使用MySQL的root用户对数据库进行修改以下设置

    2024年02月05日
    浏览(31)
  • 数据的统计描述和分析——假设检验

    对总体X的分布律或分布参数作某种假设,根据抽取的样本观察值,运用数理统计的分析方法,检验这种假设是否正确,从而决定接受假设或拒绝假设. 1. 参数检验 :如果观测的分布函数类型已知,这时构造出的统计量依赖于总体的分布函数,这种检验称为参数检验.参数检验

    2024年02月14日
    浏览(35)
  • R语言 | 数据分析——统计绘图

    目录 一、分类数据的图形描述 1.1 条形图barplot()函数 1.2 饼图pie()函数  二、量化数据的图形描述 2.1 点图与dotchart()函数 2.2 绘图函数plot()  2.2.1 绘制时间数列对象 ​2.2.2 向量数据与plot()函数 2.2.3 数据框数据与plot()函数 2.2.4  因子型数据与plot()函数 ​2.2.5 使用lines()函数绘制回

    2024年02月04日
    浏览(35)
  • 数据挖掘与数据分析之统计知识篇

    统计学上, 自由度 是指当以样本的 统计量 估计 总体 的参数时, 样本中独立或能自由变化的数据个数叫自由度 。一般来说,自由度等于独立变量减掉其衍生量数。举例来说,变异数的定义是样本减平均值(一个由样本决定的衍生量),因此对N个随机样本而言,其自由度为N

    2024年02月11日
    浏览(40)
  • 数据库性能测试实践:慢查询统计分析

    查看是否开启慢查询 mysql show variables like \\\'%slow%’; 如图所示: 系统变量log_slow_admin_statements 表示是否将慢管理语句例如ANALYZE TABLE和ALTER TABLE等记入慢查询日志 启用log_slow_extra系统变量 (从MySQL 8.0.14开始提供)将导致服务器将几个额外字段写入日志 Log_slow_slave_statements 从库默认

    2024年02月07日
    浏览(43)
  • 【hadoop】汽车销售数据统计分析项目(部分)

    来源:《hadoop大数据开发实战》 实验一:统计乘用车辆和商用车辆的数量和销售额分布 设计思路: 首先,写一个Mapper来映射输出所有乘用车辆(feiyingyun)和商用车辆(yingyun)的记录。 然后,写一个reduce统计出乘用车辆和商用车辆各自的数量,写一个map的映射集合中,其中

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包