统计分析数据的时候,经常需要进行分组统计。分组操作在python里的实现方式就是groupby语句。

惯例,咱们先造一个DataFrame表。

import pandas as pd

dic={

'class':['a','a','b','b'],

'id':[1,2,3,3],

'math':[88,66,55,22],

'physics':[99,77,33,67],

'science':[55,88,65,89]

}

df1=pd.DataFrame(data=dic,index=['student1','student2','student3','student4'])

1、单列分组

groupby语句可以单独形成一个分组对象。比如我们将数据表按照班级(class)进行分组,

后续想要进行任何的分组统计都可以使用这个分组对象。

Class_group=df1.groupby('class')

Class_group.mean()

结果为:

id math physics science

class

a 1.5 77.0 88.0 71.5

b 3.0 38.5 50.0 77.0

出现这个结果是因为我们在分组统计的时候没有指定列,所以python会将所有数值的列统计出平均值展示出来。当我们指定需要统计的列名之后,就会只展示我们需要的列。

Class_group.math.mean()

结果为:

class

a 77.0

b 38.5

Name: math, dtype: float64

分组对象也可以省略,直接得到我们需要的分组统计值,如:df1.groupby('class').math.mean(),得到的结果是一样的。

2、多列分组

分组变量可以是单列也可以是多列,多列的时候需要加上中括号。

df1.groupby(['class','id']).mean()

结果为:

math physics science

class id

a 1 88.0 99.0 55.0

2 66.0 77.0 88.0

b 3 38.5 50.0 77.0

3、分组变量成为列名而不是index

使用默认的groupby语句统计时,分组变量是作为结果DataFrame的index出现的。想要把分组变量从index挪出来成为单独一列,需要使用as_index语句。

df1.groupby('class',as_index=False).mean()

结果为:

class id math physics science

0 a 1.5 77.0 88.0 71.5

1 b 3.0 38.5 50.0 77.0

我们指定分组变量不成为index后,python会将它做为列而新建一个从0开始编号的index。

4、不同的列应用不同的统计函数

想要实现这种操作需要agg函数,在agg函数内对不同的列指定不同的统计方法。

df1.groupby('class').agg({'math':np.mean,'physics':sum,'science':max})

结果为:

math physics science

class

a 77.0 176 88

b 38.5 100 89

通过agg的方法,我们实现了对math求平均,对physics求和,对science取最大的操作。细心的同学可能发现我们求平均的操作用的是np.mean(numpy的操作),是因为agg并不支持直接的mean操作。

除了agg函数外,我们其实也可以用apply函数。只是应用apply函数时,是将分组对象内作为一个DataFrame来操作的。我们可以看看分组对象里面是什么。

for i in Class_group:

print(i)

结果为:

('a', class id math physics science

student1 a 1 88 99 55

student2 a 2 66 77 88)

('b', class id math physics science

student3 b 3 55 33 65

student4 b 3 22 67 89)

apply函数的操作其实就是对组内每一个DataFrame的操作。可以实现的功能更加复杂。

这期就先到这里,下期再见!

更多内容请关注微信公众号:XiaoXiong-WeiKe

python分组统计数据_数据分组统计相关推荐

  1. 乐高ev3 读取外部数据_数据就是新乐高

    乐高ev3 读取外部数据 When I was a kid, I used to love playing with Lego. My brother and I built almost all k ...

  2. python创建类统计属性_轻松创建统计数据的Python包

    python创建类统计属性 介绍 (Introduction) Sometimes you may need a distribution figure for your slide or class ...

  3. 在页脚里显示本页统计数据_外卖营业统计里的数据您能看懂吗?

    自己的外卖店铺在商圈里是处于什么水平?这周的营业额相对上周下滑很多,是哪里出现问题?无效订单这么多,到底是哪个环节没做好?这些问题在"营业统计"的数据分析里统统可以得到解答. &q ...

  4. 女生学python工作累吗_数据分析师女生做累么 工资一般多少

    数据分析师女生做累么,工资一般多少,小编整理了相关信息,希望会对大家有所帮助! 数据分析师女生做累不累 女生还是很适合做数据分析的,数据分析师因为敲的代码少,相比起天天敲代码的职业更适合女生一些,没那 ...

  5. Python爬虫之旅_(数据解析)_bs4

    前言: 这次来学习数据解析这方面的知识! 0x00:了解数据解析 在ONE那一篇中,就提到过聚焦爬虫(爬取页面中指定内容),大部分的爬虫都是聚焦爬虫,但我们刚开始爬取的肯定都是整个页面的数据,如何定位 ...

  6. 无法从套接字中获取更多数据_数据科学中应引起更多关注的一个组成部分

    无法从套接字中获取更多数据 介绍 (Introduction) Data science, machine learning, artificial intelligence, those terms ...

  7. echars显示折点数据_数据可视化的基础语法

    数据可视化的基础语法 可视化主要是以图像来展示数据间的关系, 常见的图形种类有 折线图,散点图,条形图,直方图,饼图. 此外在接下来课程中还会用到箱线图,热力图,蜘蛛图,表示二元变量分布和成对关系的视 ...

  8. 大数据_数据中台建设的成熟度评估模型

    数据应用能力成熟度可以总结为统计分析.决策支持.数据驱动.运营优化四个结阶段.针对不同的阶段,从企业战略定位.企业数据形态.数据应用场景.数据应用工具.企业组织架构等多个方面.不同特征维度进行参考判定 ...

  9. 大数据_数据中台建设五步走

    目录 概要 第一步:数据资源的盘点与规划:启动过程组 第二步:数据应用规划与设计:规划过程组 第三步:数据资产建设:规划过程组.执行过程组 第四步:数据应用的详细设计与实现:执行过程组.监控过程组.不 ...

最新文章

  1. Log probability 维基百科
  2. freebsd mysql57_Freebsd7.2下Ports安装PHP5、MySql5.4、Apache22
  3. 追踪源码自定义负载均衡策略
  4. 如何监控和提高IIS的性能
  5. Linux 复习重点目录
  6. android中暂停服务,Android 装逼技术之暗码启动应用
  7. linux mysql恢复数据_删库不跑路详解MySQL数据恢复
  8. calendar类_不要再自己写 Java 工具类了,这些开源的不香吗?
  9. WIFI 2.4G及5G信道一览表
  10. linux系统编译Q,Linux下安装qBittorrent,开启24小时挂机BT下载
  11. H5+CSS3移动商城界面.七天从零实战课程-会员_登录
  12. 利用矩阵快速幂求解斐波那契数列
  13. java 字符串 空白字符_Java String中移除空白字符的多种方式汇总
  14. 【本人秃顶程序员】过年了,给亲朋好友解释“啥是程序员”
  15. ティラミス / 龙枪
  16. HTML+js实现贪吃蛇小游戏(内含完整代码)
  17. android sd卡名称,Android系统中SD卡各文件夹名称及功能详解
  18. 定时器软件RH Timer for Mac了解一下
  19. 什么是云手机?云手机的原理是什么?
  20. [转]邓不利多所理解的预言

热门文章

  1. css----BFC,IFC,GFC,FFC的区别
  2. GitHub 优秀的 Android 开源项目 淘宝技术牛p博客整理开发中最常用的GitHub上 优秀的 Android 开源项目整理(精品)...
  3. 前端HTML5视频_CSS3-张晓飞-专题视频课程
  4. 计算机技术论文搜索引擎,搜索引擎-毕设论文.doc
  5. C++中的谓词(一元谓词 二元谓词)
  6. 段、页、页框、页表、页表项
  7. 文件搜索与文本内容查看
  8. 英语语法最终珍藏版笔记-2关于动词时态的几点说明
  9. 传奇如何读取服务器信息,传奇服务器修改之命令服务脚本详细使用方法介绍
  10. 3人3天喝3桶水,9人9天喝了多少桶水?