SQL经常将聚合函数与GROUP BY进行组合,对数据进行分组统计分析,python在分析数据中也可以实现相同的功能,而且python也是用GROUPBY

首先创建一个数据表

import pandas as pd
import numpy as npvalue = {'用户ID':['001','002','003','004','005','006'],'用户类型':['大','小','中','大','小','中'],'区域':['A','B','A','C','B','A'],'7月销量':[50,60,75,100,120,130],'7月销售额':[500,1200,2250,1100,3600,5200]}
df = pd.DataFrame(value)

1.groupby()

最重要的参数为by

  • 如果是基于单列进行分组,括号中可以填入列名,如'用户类型',也可以填入Series,如df['用户类型']
  • 如果是基于多列进行分组,括号中可以填入列名组成的列表,如["用户类型","区域"],也可以填入Series组成的列表,如[df["用户类型"],df["区域"]

其他参数根据情况,一般默认即可, axis=0, level=None,as_index=True,sort = True, group_keys= True,  observed= False, dropna= True

2.选择列

df.groupby()生成的也是DataFrame,有时可能需要在统计分析前选择列,可按照筛选列的方法进行操作,具体见https://blog.csdn.net/Monkey_wang_/article/details/116156599,不设置筛选时,默认是选择全部列

例如你只需要对7月销售额进行统计分析,可以写成df.groupby("用户类型")["7月销售额"]

3.统计函数

常见统计函数包括mean,sum,count,max,min等

  • 对选择出来的列进行单一统计
df.groupby(['用户类型','区域']).sum()
    7月销量 7月销售额
用户类型 区域    
A 205 7450
A 50 500
C 100 1100
B 180 4800
  • 对选择出来的列进行多种统计,此时需要借助aggregate方法,对分组后选择的列同时进行多种统计
df.groupby(['用户类型','区域']).aggregate(['sum','count'])
    用户ID 7月销量 7月销售额
    sum count sum count sum count
用户类型 区域            
A 003006 2 205 2 7450 2
A 001 1 50 1 500 1
C 004 1 100 1 1100 1
B 002005 2 180 2 4800 2
  • 对选择出来的列,不同列进行不同的统计,如一个列进行求和,一个列进行求平均,仍需要借助aggregate方法,不过这个时候需要传入以列名为键,统计函数为值的字典
df.groupby(['用户类型','区域']).aggregate({'7月销量':'sum','7月销售额':'mean'})
    7月销量 7月销售额
用户类型 区域    
A 205 3725
A 50 500
C 100 1100
B 180 2400

4.索引处理

默认以分组中的某列或某些列为索引,但有时候我们并不想要这样的索引,此时有两种方法处理:

  • 将groupby()中的参数as_index设置为False,即as_index=False
df.groupby('用户类型',as_index=False).sum()
  • 通过reset_index()重置索引
df.groupby('用户类型').sum().reset_index()

利用python对数据进行分组统计相关推荐

  1. Sql Server 中利用游标对table 的数据进行分组统计式输出…

    Sql Server 中利用游标对table 的数据进行分组统计式输出- Table Name: Tb_Color Create table Tb_Color(id int identity(1,1) ...

  2. Python数据分析pandas之分组统计透视表

    Python数据分析pandas之分组统计透视表 数据聚合统计 Padans里的聚合统计即是应用分组的方法对数据框进行聚合统计,常见的有min(最小).max(最大).avg(平均值).sum(求和) ...

  3. python画曲线图-利用python绘制数据曲线图的实现

    "在举国上下万众一心.众志成城做好新冠肺炎疫情防控工作的特殊时刻,我们不能亲临主战场,但我们能坚持在大战中坚定信心.不负韶华." 1.爬取新闻保存为json文件,并将绘图所需数据保 ...

  4. 实战教程!利用Python获取数据,并在地图上批量标注

    我们想要在地图上批量标注某一类的大量点位,该怎么操作呢?没有它的坐标数据,就没有办法批量标注.今天给大家介绍下,来自图新地球用户王泽的原创教程--利用Python获取数据,并在地图上批量标注的方法! ...

  5. pandas对数据进行分组统计

    pandas对数据进行分组统计 文章目录 pandas对数据进行分组统计 前言 一.分组后进行sum操作 二.分组后进行迭代操作 三.分组后进行聚合agg操作 四.使用自定义函数进行统计 五.使用di ...

  6. python excel筛选统计_懂点EXCEL就行!教你利用Python做数据筛选(上)

    前言 Python的数据清洗功能有多厉害,相信不用我说大家都知道了,寥寥几行代码便可以把一份杂乱无章的表格给处理的干干净净.但是python也是不容易入门的,毕竟编程语言要理解和精通也是要花不少功夫的 ...

  7. 利用python进行数据分析学习笔记

    利用python进行数据分析 numpy:数组与向量化计算 pandas pandas读取和写入数据集及文件格式 数据清洗与准备 数据规整:连接.联合和重排列 绘图与可视化 数据聚合与分组操作 时间序 ...

  8. python数据逆透视_利用Python实现数据逆透视

    Hello大家好,欢迎来到[统计GO],本公众号定期分享一些好用的数据分析工具,帮助大家花更少的时间学更多的知识. 如果本期内容(使用Python实现逆透视)对您有所帮助,记得及时关注. 背景介绍 今 ...

  9. python运行excel高级筛选怎么用_懂点EXCEL就行!教你利用Python做数据筛选(上)...

    前言 Python的数据清洗功能有多厉害,相信不用我说大家都知道了,寥寥几行代码便可以把一份杂乱无章的表格给处理的干干净净.但是python也是不容易入门的,毕竟编程语言要理解和精通也是要花不少功夫的 ...

最新文章

  1. RPC 笔记(08)— socket 通信(多进程多线程服务器)
  2. android 中间凹背景_Android 华为凹口屏适配小结
  3. 刷网络课_网络营销实践心得—刘荟萌
  4. php使用redis存储
  5. native react 更新机制_react-native热更新全方位讲解
  6. 肺结节目标检测_有肺结节就代表离肺癌不远了?别吓自己,简单几问解答你的困惑...
  7. php 单位食堂订餐,单位饭堂订餐系统(手机订餐)
  8. AngularJS过滤器filter-保留小数-渲染页面-小数点-$filter
  9. 小试牛刀——搭建一个周报管理系统
  10. 液压泵优化设计matlab,基于MATLAB/Simulink的挖掘机动力匹配技术的转速传感变量系统设计...
  11. Python+Cartopy绘制中国地图
  12. 好玩的小霸王游戏机HTML网站源码
  13. 拼接播放地址_杰和科技G330六屏拼接主机带来差异化6屏拼接方案
  14. 一名3年工作经验的程序员应该具备的技能 !
  15. 索尼为收购工作室准备,对抗微软?
  16. Intel Me更新
  17. Android开发拨打座机分机号码
  18. 东芝存储器株式会社计划搬迁总部
  19. 《C++ Primer》读书笔记——第十三章_拷贝控制
  20. import lap报错ValueError

热门文章

  1. 程序员修炼之道-从小工到专家 读后感
  2. windows 10 清理系统盘
  3. epoll反应堆模型
  4. 指令集CEO潘爱民受聘为之江实验室智能计算数字反应堆首席架构师
  5. Linux Graphics 周刊(第 5 期)
  6. 互联网最后一个绯闻女友出嫁 大众点评联姻腾讯
  7. python:kiva贷款数据
  8. Spring官方文档中文翻译
  9. 盘点 | AAAI2020中的四篇推荐系统好文
  10. JavaSwing多线程小游戏雷霆战机