Python数据分析中Groupby用法之通过字典或Series进行分组
在数据分析中有时候需要自己定义分组规则 这里简单介绍一下用一个字典实现分组
people=DataFrame( np.random.randn(5,5), columns=['a','b','c','d','e'], index=['Joe','Steve','Wes','Jim','Travis'])
mapping={'a':'red','b':'red','c':'blue','d':'blue','e':'red','f':'orange'}
by_column=people.groupby(mapping,axis=1)#列方向上进行分组这里不知道python底层是怎么运行的,最好把运行的结果打印出来看一下for i in by_column:print (i) 遍历的结果:('blue', c dJoe 0.218189 -0.228336Steve 1.677264 0.630303Wes 0.315320 -0.250787Jim 3.343462 0.483021Travis 0.854553 -0.760884)('red', a b eJoe 0.218164 0.823654 -1.425720Steve 1.191175 -0.327735 1.926470Wes -1.418855 0.497466 0.110105Jim -1.157157 0.817122 0.749023Travis -0.440583 -0.907922 1.374294) 从结果可以看到,把a b e分给了red, c d分给了blue
a b e--->red c d --->blue
接下来再来执行 people.groupby(mapping,axis=1).mean() blue redJoe 0.241336 -0.182099Steve 0.459773 -0.448336Wes 0.205278 0.605721Jim -0.094838 1.254174Travis 0.354140 0.142075从结果看到在列方向group分组 执行聚合函数mean()后列索引就只有 blue和red了。整个过程可以这么理解 在列方向上进行分组 a b e为一组为red,c d 为一组为blue。最后以red blue作为新DataFraem的列索引 同样Series也有同样的功能,它可以被看作一个固定大小的映射。对于上面的那个例子,如果用series作为分组键,则pandas会检查Series以确保其索引分组轴是对齐的:ser=Series(mapping)a redb redc blued bluee redf orange
by_ser_group=people.groupby(ser,axis=1).mean() blue redJoe 0.241336 -0.182099Steve 0.459773 -0.448336Wes 0.205278 0.605721Jim -0.094838 1.254174Travis 0.354140 0.142075从结果可以看到,通过字典进行分组和通过Series进行分组结果是相同的。也就是说他们执行的原理是相同的,都是把索引(对series来说)或字典的key与Dataframe的索引进行匹配,字典中value或series中values值相同的会被分到一个组中,最后根据每组进行在聚合。groupby的用法很多,之后有时间我会慢慢更新博客。如果有那些地方有错欢迎大家指出,一块学习,共同进步。
转载于:https://www.cnblogs.com/nyist-/p/8003764.html
Python数据分析中Groupby用法之通过字典或Series进行分组相关推荐
- Python数据分析中数据预处理:编码将文字型数据转换为数值型
[小白从小学Python.C.Java] [Python-计算机等级考试二级] [Python-数据分析] Python数据分析中 数据预处理:编码 将文字型数据转换为数值型 选择题 对于以下pyth ...
- Python数据分析中的数据预处理:数据标准化
[小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python数据分析中的 数据预处理:数据标准化 ● 选择题 以下关于 ...
- 类的应用python平均分_【数据科学系统学习】Python # 数据分析基本操作[四] 数据规整化和数据聚合与分组运算...
本篇内容为整理<利用Python进行数据分析>,博主使用代码为 Python3,部分内容和书本有出入. 在前几篇中我们介绍了 NumPy.pandas.matplotlib 三个库的基本操 ...
- Python面向对象中super用法与MRO机制
1. 引言 最近在研究django rest_framework的源码,老是遇到super,搞得一团蒙,多番查看各路大神博客,总算明白了一点,今天做一点总结. 2. 为什么要用super 1)让代码维 ...
- python数据分析及可视化(九)pandas数据规整(分组聚合、数据透视表、时间序列、数据分析流程)
作业 拼接多个csv文件 去除重复数据,重新索引 自动挡和手动挡数目 计算每个城市二手车数量 统计每个汽车品牌平均售价价格(不是原价) 分组与聚合 如下表所示,5行3列的表格,5种水果分别对应的名称, ...
- python enumerate_Python中enumerate用法详解
enumerate()是python的内置函数.适用于python2.x和python3.x enumerate在字典上是枚举.列举的意思 enumerate参数为可遍历/可迭代的对象(如列表.字符串 ...
- 修饰符在python函数中的用法详细解释
python修饰符是实现一个函数嵌套的功能,比较以下两个函数 # -*- coding:utf-8 -*- def a(fn):print 'a'def d(st):print "----- ...
- Python数据分析的bs4用法
在爬虫的世界里,数据解析占用很重要的位置 数据解析原理: 标签定位 提取标签.标签属性中存储的数据值 bs4数据解析原理: 1.实例化一个BeautifulSoup对象,并且将页面原码数据加载到该对象 ...
- mysql中groupby用法_详解SQL中GroupBy的用法
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. 1.概述 "Group By"从字面意义上理解就是根据"By"指定的规则对数据进行分 ...
- python strftime_python 中strftime用法
"""8.strftime(...) strftime(format[, tuple]) -> string 将指定的struct_time(默认为当前时间),根据 ...
最新文章
- CSDN 湘苗培优,打造高素质技术人才
- Emulator Error: Could not load OpenGLES emulati...
- 【经典回顾】YouTube 深度学习推荐系统的十大工程问题(附论文下载链接)
- android AChartEnginee讲解之自定义图表类
- 修改表结构的执行效率
- windows输入法打出的字母空隙很大怎么办?
- 软件项目与产品的区别与联系_软件产品和软件过程之间的区别和关系
- 直线方程求x坐标c语言,已知两点坐标,求直线方程、距离其中一点距离为L的某点...
- JAVA导入gpx文件_使用传单加载多个gpx文件
- linux服务器修改ftp默认21端口方法
- php mov格式转换,mov格式怎么转换成mp4 如何将mov转换成mp4
- 高速公路的一些线路计算
- Ubuntu使用火狐浏览器下载安装AdobeFlashPlayer
- c++ Win x64 注册表操作
- HA高可用与负载均衡入门到实战(四)---- 配置nginx防盗链和HTTPS
- 最新微信ipad协议 CODE获取 公众号授权等
- 医疗信息系统安全事件案例...
- AI 人工智能 干货分享
- 美国eb1a移民费用有哪些
- 一本通1034:计算三角形面积