Pandas数据分析—groupby分组统计
13.Pandas中groupby分组统计
文章目录
- 13.Pandas中groupby分组统计
- 前言
- 一、分组使用聚合函数做数据统计
- 1.准备数据
- 二、遍历groupby的结果理解执行流程
- 三、实例分组股票数据
- 总结
前言
笔者最近正在学习Pandas数据分析,将自己的学习笔记做成一套系列文章。本节主要记录Pandas中groupby的使用(类似sql数据库中的groupby)
类似SQL:
select city,max(temperature) from city_weather group by city;
group:先对数据分组,然后再在每个分组上应用聚合函数、转换函数
本次演示:
- 分组使用聚合函数做数据统计
- 遍历groupby的结果理解执行的流程
- 实例分组探索天气数据
一、分组使用聚合函数做数据统计
1.准备数据
import pandas as pd
import numpy as np
#加上这句,就可以在jupyter notebook展示matplot图表
%matplotlib inline
df=pd.DataFrame({'A':['foo','bar','foo','bar','foo','bar','foo','foo'],'B':['one','one','two','three','two','two','one','three'],'C':np.random.randn(8),'D':np.random.randn(8)}
)
df
#1. 单个列groupby,查询所有数据列的统计
#我们容易看到:#groupby中的'A'变成了数据的索引列
#因为要统计sum,但是B列不是数字,所以要被自动忽略掉
df.groupby('A').sum()#2. 多个列groupby,查询所有数据列的统计
# 我们容易看到: ('A','B')成对变成了二级索引
df.groupby(['A','B']).mean()
df.groupby(['A','B'],as_index=False).mean()#3.同时查看多种统计数据
#我们看到列就成为了多级的索引
df.groupby('A').agg([np.sum,np.mean,np.std])#4.查看单列的结果数据统计
#方法1:预过滤,性能更好
df.groupby('A')['C'].agg([np.sum,np.mean,np.std])
#方法2
df.groupby('A').agg([np.sum,np.mean,np.std])['C']#5.不同列使用不同的聚合函数
df.groupby('A').agg({'C':np.sum,'D':np.mean})
二、遍历groupby的结果理解执行流程
#for循环可以直接遍历每个group
#1.遍历单个列聚合的分组
g=df.groupby('A')
g
for name,group in g:print(name)print(group)print()#可以获得单个分组的数据
g.get_group('bar')#2.遍历多个列聚合的分组
g=df.groupby(['A','B'])
for name,group in g:print(name)print(group)print()#可以看到name是一个2个元素的tuple,代表不同的列g.get_group(('foo','one'))
#可以直接查询group后的某几列,生成Series或者子DataFrame
g['C']
for name,group in g['C']:print(name)print(group)print(type(group))print()
#其实所有的聚合统计,都是在dataframe和series上进行的
三、实例分组股票数据
import pandas as pd
fpath="./datas/600033.csv"
df=pd.read_csv(fpath)
df.head()#新增一列为vol的后两位
df['new']=df['vol']*100%100
df.head()#查看每个同分组的最高温度
data=df.groupby('new')['open'].max()
datatype(data)
data.plot()#查看每个分组开盘价的最高,收盘的最低,成交量的平均
df.head()
group_data=df.groupby('new').agg({'open': np.max,'close':np.min,'amount':np.mean})
group_data
group_data.plot()
总结
这就是pandas的groupby基本用法了,希望可以帮助到你。
Pandas数据分析—groupby分组统计相关推荐
- Pandas数据分析groupby函数深度总结(1)
Pandas数据分析groupby函数深度总结(1) groupby分组数据 加载数据 数据分组 按'Sales Rep'列分组 显示所有分组 选择一个特定的组 计算每组中的行数 按'Sales Re ...
- php groupby后找最大时间,pandas获取groupby分组里最大值所在的行方法
下面为大家分享一篇pandas获取groupby分组里最大值所在的行方法,具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 pandas获取groupby分组里最大值所在的行方法 如下面这个Da ...
- pandas相关函数sort_values、字符串处理、index、merge、数据合并cancat、groupby分组统计
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.排序函数sort_values() 二.字符串处理 1.介绍 2.代码介绍 3.Categorical类型降低数据 ...
- pandas之groupby分组与pivot_table透视
一.groupby 类似excel的数据透视表,一般是按照行进行分组,使用方法如下. df.groupby(by=None, axis=0, level=None, as_index=True, so ...
- pandas df.groupby()分组后的数据访问,set_index的用法
分组方式 注意第一种与第三种方式的区别. import pandas as pd dic={'省份':['A','A','A','B','C'],'城市':['a','a','a_','b','c', ...
- Windows 10 - Python - 数据分析 - 年龄分组统计 - 条形图 - matplotlib
最近需要用到条形图,统计年龄,所以查了一下资料,修改为满足自己要求的条形图,下面看代码自行领会. 测试环境: 操作系统: Window 10 工具:Pycharm Python: 3.7 matplo ...
- mysql groupby 日期_sql 语言 groupBy 分组统计时间段解决方案
记录一下数据统计时遇到的问题和解决方案 先贴完整的效果 问题一 GroupBy数据不是每天连续的 统计图是关于某段时间内,每年/每月/每周的微博数量的折线图.数据为连续不断的,但现实的情况中数据库里的 ...
- python 数据分组后看每组多少个_【Python】分组统计GroupBy技术详解
摘要 进行数据分析时,GroupBy分组统计是非常常用的操作,也是十分重要的操作之一.基本上大部分的数据分析都会用到该操作,本文将对Python的GroupBy分组统计操作进行讲解. 1.GroupB ...
- Pandas数据分析⑥——数据分析实例(货品送达率与合格率/返修率/拒收率)
Pandas系列目录如下: Pandas数据分析①--数据读取(CSV/TXT/JSON) Pandas数据分析②--数据清洗(重复值/缺失值/异常值) Pandas数据分析③--数据规整1(索引和列 ...
最新文章
- Apache服务器下使用 ab 命令进行压力测试
- 数据挖掘公司D square nv 完成500万欧元B轮融资
- oa系统登录后几分钟自动退出_2020版OA办公系统正式上线运行!
- mysql 连接 选库 查询
- SpringMVC 3 Tiles 2.2.2集成教程
- openstack之镜像管理
- elementui table某一列是否显示_汇编语言--键盘扫描及显示实验(含代码解释)
- mysql 大表查询慢_mysql大表查询慢怎么优化?
- element-ui下拉框使用value绑定id
- 数据分析中会常犯哪些错误,如何解决? 五
- 2018年软件评测师备考之路
- 使用 SOUI 开发高 DPI 桌面应用程序
- QT 字符乱码的原因
- 计算机英语作业答案,大工20春《专业英语(计算机英语)》在线作业1题目【标准答案】...
- 旭凤锦覓虐心 恋只愿共赴鸿蒙,【香蜜同人】所爱隔山海(旭凤X锦觅X润玉)
- 小米手机4获取ROOT权限的步骤
- linux局域网ip查询软件,局域网IP查询
- php的命名空间和自动加载实现
- Mac—删除默认英文输入法
- java操作RabbitMQ
热门文章
- java输出体重指数_Android开发–身高体重指数(BIM)计算–完成BMI程序 | 学步园...
- 14天学习训练营导师课程-Pygame学习笔记-Part2(第九艺术的召唤)
- Django中使用极验Geetest滑动验证码过程解析
- 期货软件开发与平台搭建注意事项
- 1665_MIT 6.828 JOS虚拟存储的设置
- zip文件的由来以及zip文件格式规范
- 12V系统汽车电子保护及TVS管选型
- 2020年人工智能政策汇总:人才政策更倾向基础层与复合型人才
- 多媒体个人计算机包括了什么部分,一个完整的多媒体计算机系统,应包含三个组成部分,它们是______。...
- 大数据框架复习-flink