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:先对数据分组,然后再在每个分组上应用聚合函数、转换函数
本次演示:

  1. 分组使用聚合函数做数据统计
  2. 遍历groupby的结果理解执行的流程
  3. 实例分组探索天气数据

一、分组使用聚合函数做数据统计

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分组统计相关推荐

  1. Pandas数据分析groupby函数深度总结(1)

    Pandas数据分析groupby函数深度总结(1) groupby分组数据 加载数据 数据分组 按'Sales Rep'列分组 显示所有分组 选择一个特定的组 计算每组中的行数 按'Sales Re ...

  2. php groupby后找最大时间,pandas获取groupby分组里最大值所在的行方法

    下面为大家分享一篇pandas获取groupby分组里最大值所在的行方法,具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 pandas获取groupby分组里最大值所在的行方法 如下面这个Da ...

  3. pandas相关函数sort_values、字符串处理、index、merge、数据合并cancat、groupby分组统计

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.排序函数sort_values() 二.字符串处理 1.介绍 2.代码介绍 3.Categorical类型降低数据 ...

  4. pandas之groupby分组与pivot_table透视

    一.groupby 类似excel的数据透视表,一般是按照行进行分组,使用方法如下. df.groupby(by=None, axis=0, level=None, as_index=True, so ...

  5. pandas df.groupby()分组后的数据访问,set_index的用法

    分组方式 注意第一种与第三种方式的区别. import pandas as pd dic={'省份':['A','A','A','B','C'],'城市':['a','a','a_','b','c', ...

  6. Windows 10 - Python - 数据分析 - 年龄分组统计 - 条形图 - matplotlib

    最近需要用到条形图,统计年龄,所以查了一下资料,修改为满足自己要求的条形图,下面看代码自行领会. 测试环境: 操作系统: Window 10 工具:Pycharm Python: 3.7 matplo ...

  7. mysql groupby 日期_sql 语言 groupBy 分组统计时间段解决方案

    记录一下数据统计时遇到的问题和解决方案 先贴完整的效果 问题一 GroupBy数据不是每天连续的 统计图是关于某段时间内,每年/每月/每周的微博数量的折线图.数据为连续不断的,但现实的情况中数据库里的 ...

  8. python 数据分组后看每组多少个_【Python】分组统计GroupBy技术详解

    摘要 进行数据分析时,GroupBy分组统计是非常常用的操作,也是十分重要的操作之一.基本上大部分的数据分析都会用到该操作,本文将对Python的GroupBy分组统计操作进行讲解. 1.GroupB ...

  9. Pandas数据分析⑥——数据分析实例(货品送达率与合格率/返修率/拒收率)

    Pandas系列目录如下: Pandas数据分析①--数据读取(CSV/TXT/JSON) Pandas数据分析②--数据清洗(重复值/缺失值/异常值) Pandas数据分析③--数据规整1(索引和列 ...

最新文章

  1. Apache服务器下使用 ab 命令进行压力测试
  2. 数据挖掘公司D square nv 完成500万欧元B轮融资
  3. oa系统登录后几分钟自动退出_2020版OA办公系统正式上线运行!
  4. mysql 连接 选库 查询
  5. SpringMVC 3 Tiles 2.2.2集成教程
  6. openstack之镜像管理
  7. elementui table某一列是否显示_汇编语言--键盘扫描及显示实验(含代码解释)
  8. mysql 大表查询慢_mysql大表查询慢怎么优化?
  9. element-ui下拉框使用value绑定id
  10. 数据分析中会常犯哪些错误,如何解决? 五
  11. 2018年软件评测师备考之路
  12. 使用 SOUI 开发高 DPI 桌面应用程序
  13. QT 字符乱码的原因
  14. 计算机英语作业答案,大工20春《专业英语(计算机英语)》在线作业1题目【标准答案】...
  15. 旭凤锦覓虐心 恋只愿共赴鸿蒙,【香蜜同人】所爱隔山海(旭凤X锦觅X润玉)
  16. 小米手机4获取ROOT权限的步骤
  17. linux局域网ip查询软件,局域网IP查询
  18. php的命名空间和自动加载实现
  19. Mac—删除默认英文输入法
  20. java操作RabbitMQ

热门文章

  1. java输出体重指数_Android开发–身高体重指数(BIM)计算–完成BMI程序 | 学步园...
  2. 14天学习训练营导师课程-Pygame学习笔记-Part2(第九艺术的召唤)
  3. Django中使用极验Geetest滑动验证码过程解析
  4. 期货软件开发与平台搭建注意事项
  5. 1665_MIT 6.828 JOS虚拟存储的设置
  6. zip文件的由来以及zip文件格式规范
  7. 12V系统汽车电子保护及TVS管选型
  8. 2020年人工智能政策汇总:人才政策更倾向基础层与复合型人才
  9. 多媒体个人计算机包括了什么部分,一个完整的多媒体计算机系统,应包含三个组成部分,它们是______。...
  10. 大数据框架复习-flink