利用python对数据进行分组统计
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对数据进行分组统计相关推荐
- Sql Server 中利用游标对table 的数据进行分组统计式输出…
Sql Server 中利用游标对table 的数据进行分组统计式输出- Table Name: Tb_Color Create table Tb_Color(id int identity(1,1) ...
- Python数据分析pandas之分组统计透视表
Python数据分析pandas之分组统计透视表 数据聚合统计 Padans里的聚合统计即是应用分组的方法对数据框进行聚合统计,常见的有min(最小).max(最大).avg(平均值).sum(求和) ...
- python画曲线图-利用python绘制数据曲线图的实现
"在举国上下万众一心.众志成城做好新冠肺炎疫情防控工作的特殊时刻,我们不能亲临主战场,但我们能坚持在大战中坚定信心.不负韶华." 1.爬取新闻保存为json文件,并将绘图所需数据保 ...
- 实战教程!利用Python获取数据,并在地图上批量标注
我们想要在地图上批量标注某一类的大量点位,该怎么操作呢?没有它的坐标数据,就没有办法批量标注.今天给大家介绍下,来自图新地球用户王泽的原创教程--利用Python获取数据,并在地图上批量标注的方法! ...
- pandas对数据进行分组统计
pandas对数据进行分组统计 文章目录 pandas对数据进行分组统计 前言 一.分组后进行sum操作 二.分组后进行迭代操作 三.分组后进行聚合agg操作 四.使用自定义函数进行统计 五.使用di ...
- python excel筛选统计_懂点EXCEL就行!教你利用Python做数据筛选(上)
前言 Python的数据清洗功能有多厉害,相信不用我说大家都知道了,寥寥几行代码便可以把一份杂乱无章的表格给处理的干干净净.但是python也是不容易入门的,毕竟编程语言要理解和精通也是要花不少功夫的 ...
- 利用python进行数据分析学习笔记
利用python进行数据分析 numpy:数组与向量化计算 pandas pandas读取和写入数据集及文件格式 数据清洗与准备 数据规整:连接.联合和重排列 绘图与可视化 数据聚合与分组操作 时间序 ...
- python数据逆透视_利用Python实现数据逆透视
Hello大家好,欢迎来到[统计GO],本公众号定期分享一些好用的数据分析工具,帮助大家花更少的时间学更多的知识. 如果本期内容(使用Python实现逆透视)对您有所帮助,记得及时关注. 背景介绍 今 ...
- python运行excel高级筛选怎么用_懂点EXCEL就行!教你利用Python做数据筛选(上)...
前言 Python的数据清洗功能有多厉害,相信不用我说大家都知道了,寥寥几行代码便可以把一份杂乱无章的表格给处理的干干净净.但是python也是不容易入门的,毕竟编程语言要理解和精通也是要花不少功夫的 ...
最新文章
- RPC 笔记(08)— socket 通信(多进程多线程服务器)
- android 中间凹背景_Android 华为凹口屏适配小结
- 刷网络课_网络营销实践心得—刘荟萌
- php使用redis存储
- native react 更新机制_react-native热更新全方位讲解
- 肺结节目标检测_有肺结节就代表离肺癌不远了?别吓自己,简单几问解答你的困惑...
- php 单位食堂订餐,单位饭堂订餐系统(手机订餐)
- AngularJS过滤器filter-保留小数-渲染页面-小数点-$filter
- 小试牛刀——搭建一个周报管理系统
- 液压泵优化设计matlab,基于MATLAB/Simulink的挖掘机动力匹配技术的转速传感变量系统设计...
- Python+Cartopy绘制中国地图
- 好玩的小霸王游戏机HTML网站源码
- 拼接播放地址_杰和科技G330六屏拼接主机带来差异化6屏拼接方案
- 一名3年工作经验的程序员应该具备的技能 !
- 索尼为收购工作室准备,对抗微软?
- Intel Me更新
- Android开发拨打座机分机号码
- 东芝存储器株式会社计划搬迁总部
- 《C++ Primer》读书笔记——第十三章_拷贝控制
- import lap报错ValueError