python分组统计数据_数据分组统计
统计分析数据的时候,经常需要进行分组统计。分组操作在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分组统计数据_数据分组统计相关推荐
- 乐高ev3 读取外部数据_数据就是新乐高
乐高ev3 读取外部数据 When I was a kid, I used to love playing with Lego. My brother and I built almost all k ...
- python创建类统计属性_轻松创建统计数据的Python包
python创建类统计属性 介绍 (Introduction) Sometimes you may need a distribution figure for your slide or class ...
- 在页脚里显示本页统计数据_外卖营业统计里的数据您能看懂吗?
自己的外卖店铺在商圈里是处于什么水平?这周的营业额相对上周下滑很多,是哪里出现问题?无效订单这么多,到底是哪个环节没做好?这些问题在"营业统计"的数据分析里统统可以得到解答. &q ...
- 女生学python工作累吗_数据分析师女生做累么 工资一般多少
数据分析师女生做累么,工资一般多少,小编整理了相关信息,希望会对大家有所帮助! 数据分析师女生做累不累 女生还是很适合做数据分析的,数据分析师因为敲的代码少,相比起天天敲代码的职业更适合女生一些,没那 ...
- Python爬虫之旅_(数据解析)_bs4
前言: 这次来学习数据解析这方面的知识! 0x00:了解数据解析 在ONE那一篇中,就提到过聚焦爬虫(爬取页面中指定内容),大部分的爬虫都是聚焦爬虫,但我们刚开始爬取的肯定都是整个页面的数据,如何定位 ...
- 无法从套接字中获取更多数据_数据科学中应引起更多关注的一个组成部分
无法从套接字中获取更多数据 介绍 (Introduction) Data science, machine learning, artificial intelligence, those terms ...
- echars显示折点数据_数据可视化的基础语法
数据可视化的基础语法 可视化主要是以图像来展示数据间的关系, 常见的图形种类有 折线图,散点图,条形图,直方图,饼图. 此外在接下来课程中还会用到箱线图,热力图,蜘蛛图,表示二元变量分布和成对关系的视 ...
- 大数据_数据中台建设的成熟度评估模型
数据应用能力成熟度可以总结为统计分析.决策支持.数据驱动.运营优化四个结阶段.针对不同的阶段,从企业战略定位.企业数据形态.数据应用场景.数据应用工具.企业组织架构等多个方面.不同特征维度进行参考判定 ...
- 大数据_数据中台建设五步走
目录 概要 第一步:数据资源的盘点与规划:启动过程组 第二步:数据应用规划与设计:规划过程组 第三步:数据资产建设:规划过程组.执行过程组 第四步:数据应用的详细设计与实现:执行过程组.监控过程组.不 ...
最新文章
- Log probability 维基百科
- freebsd mysql57_Freebsd7.2下Ports安装PHP5、MySql5.4、Apache22
- 追踪源码自定义负载均衡策略
- 如何监控和提高IIS的性能
- Linux 复习重点目录
- android中暂停服务,Android 装逼技术之暗码启动应用
- linux mysql恢复数据_删库不跑路详解MySQL数据恢复
- calendar类_不要再自己写 Java 工具类了,这些开源的不香吗?
- WIFI 2.4G及5G信道一览表
- linux系统编译Q,Linux下安装qBittorrent,开启24小时挂机BT下载
- H5+CSS3移动商城界面.七天从零实战课程-会员_登录
- 利用矩阵快速幂求解斐波那契数列
- java 字符串 空白字符_Java String中移除空白字符的多种方式汇总
- 【本人秃顶程序员】过年了,给亲朋好友解释“啥是程序员”
- ティラミス / 龙枪
- HTML+js实现贪吃蛇小游戏(内含完整代码)
- android sd卡名称,Android系统中SD卡各文件夹名称及功能详解
- 定时器软件RH Timer for Mac了解一下
- 什么是云手机?云手机的原理是什么?
- [转]邓不利多所理解的预言
热门文章
- css----BFC,IFC,GFC,FFC的区别
- GitHub 优秀的 Android 开源项目 淘宝技术牛p博客整理开发中最常用的GitHub上 优秀的 Android 开源项目整理(精品)...
- 前端HTML5视频_CSS3-张晓飞-专题视频课程
- 计算机技术论文搜索引擎,搜索引擎-毕设论文.doc
- C++中的谓词(一元谓词 二元谓词)
- 段、页、页框、页表、页表项
- 文件搜索与文本内容查看
- 英语语法最终珍藏版笔记-2关于动词时态的几点说明
- 传奇如何读取服务器信息,传奇服务器修改之命令服务脚本详细使用方法介绍
- 3人3天喝3桶水,9人9天喝了多少桶水?