在数据分析中有时候需要自己定义分组规则 这里简单介绍一下用一个字典实现分组

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进行分组相关推荐

  1. Python数据分析中数据预处理:编码将文字型数据转换为数值型

    [小白从小学Python.C.Java] [Python-计算机等级考试二级] [Python-数据分析] Python数据分析中 数据预处理:编码 将文字型数据转换为数值型 选择题 对于以下pyth ...

  2. Python数据分析中的数据预处理:数据标准化

    [小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python数据分析中的 数据预处理:数据标准化 ● 选择题 以下关于 ...

  3. 类的应用python平均分_【数据科学系统学习】Python # 数据分析基本操作[四] 数据规整化和数据聚合与分组运算...

    本篇内容为整理<利用Python进行数据分析>,博主使用代码为 Python3,部分内容和书本有出入. 在前几篇中我们介绍了 NumPy.pandas.matplotlib 三个库的基本操 ...

  4. Python面向对象中super用法与MRO机制

    1. 引言 最近在研究django rest_framework的源码,老是遇到super,搞得一团蒙,多番查看各路大神博客,总算明白了一点,今天做一点总结. 2. 为什么要用super 1)让代码维 ...

  5. python数据分析及可视化(九)pandas数据规整(分组聚合、数据透视表、时间序列、数据分析流程)

    作业 拼接多个csv文件 去除重复数据,重新索引 自动挡和手动挡数目 计算每个城市二手车数量 统计每个汽车品牌平均售价价格(不是原价) 分组与聚合 如下表所示,5行3列的表格,5种水果分别对应的名称, ...

  6. python enumerate_Python中enumerate用法详解

    enumerate()是python的内置函数.适用于python2.x和python3.x enumerate在字典上是枚举.列举的意思 enumerate参数为可遍历/可迭代的对象(如列表.字符串 ...

  7. 修饰符在python函数中的用法详细解释

    python修饰符是实现一个函数嵌套的功能,比较以下两个函数 # -*- coding:utf-8 -*- def a(fn):print 'a'def d(st):print "----- ...

  8. Python数据分析的bs4用法

    在爬虫的世界里,数据解析占用很重要的位置 数据解析原理: 标签定位 提取标签.标签属性中存储的数据值 bs4数据解析原理: 1.实例化一个BeautifulSoup对象,并且将页面原码数据加载到该对象 ...

  9. mysql中groupby用法_详解SQL中GroupBy的用法

    GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. 1.概述 "Group By"从字面意义上理解就是根据"By"指定的规则对数据进行分 ...

  10. python strftime_python 中strftime用法

    """8.strftime(...) strftime(format[, tuple]) -> string 将指定的struct_time(默认为当前时间),根据 ...

最新文章

  1. CSDN 湘苗培优,打造高素质技术人才
  2. Emulator Error: Could not load OpenGLES emulati...
  3. 【经典回顾】YouTube 深度学习推荐系统的十大工程问题(附论文下载链接)
  4. android AChartEnginee讲解之自定义图表类
  5. 修改表结构的执行效率
  6. windows输入法打出的字母空隙很大怎么办?
  7. 软件项目与产品的区别与联系_软件产品和软件过程之间的区别和关系
  8. 直线方程求x坐标c语言,已知两点坐标,求直线方程、距离其中一点距离为L的某点...
  9. JAVA导入gpx文件_使用传单加载多个gpx文件
  10. linux服务器修改ftp默认21端口方法
  11. php mov格式转换,mov格式怎么转换成mp4 如何将mov转换成mp4
  12. 高速公路的一些线路计算
  13. Ubuntu使用火狐浏览器下载安装AdobeFlashPlayer
  14. c++ Win x64 注册表操作
  15. HA高可用与负载均衡入门到实战(四)---- 配置nginx防盗链和HTTPS
  16. 最新微信ipad协议 CODE获取 公众号授权等
  17. 医疗信息系统安全事件案例...
  18. AI 人工智能 干货分享
  19. 美国eb1a移民费用有哪些
  20. 一本通1034:计算三角形面积

热门文章

  1. MPLS virtual private network Spoken-Hub网络实验(华为设备)
  2. PIM SM建立SPT树过程与实验
  3. LAMP+Varnish缓存详解(一)——Varnish简介
  4. MySQL优化详解(二)——数据库架构和使用优化
  5. 计算机网络误区——为什么我的PING包发不出去?
  6. 华三 h3c STP生成树保护配置
  7. NYOJ --277 车牌号
  8. 为什么数据库表字段要限制长度?
  9. 【大数据】Azkaban学习笔记
  10. Vue CLI安装 Vue项目创建 Vue Devtools安装