iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Pandas实现groupby分组统计的实践
  • 566
分享到

Pandas实现groupby分组统计的实践

2024-04-02 19:04:59 566人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录1、创建数据和导入包2、分组使用聚合函数做数据统计3、遍历groupby的结果理解执行流程4、实例分组探索天气数据类似sql:select city,max(tempe

类似sql
select city,max(temperature) from city_weather group by city;

groupby:先对数据分组,然后在每个分组上应用聚合函数、转换函数

本次演示:
一、分组使用聚合函数做数据统计
二、遍历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)})

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

1、单个列groupby,查询所有数据列的统计

df.groupby('A').sum()

groupby中的’A’变成了数据的索引
因为要统计sum,但B列不是数字,所以被自动忽略掉

2、多个列groupby,查询所有数据列的统计

df.groupby(['A','B']).mean()

我们看到:(‘A’,‘B’)成对变成了二级索引

df.groupby(['A','B'], as_index=False).mean() #这会使得A、B两列不会成为二级索引

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})

3、遍历groupby的结果理解执行流程

for循环可以直接遍历每个group

1、遍历单个列聚合的分组

g = df.groupby('A')

for name,group in g:
    print(name)
    print(group)

可以获取单个分组的数据

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上进行的

4、实例分组探索天气数据

fpath = "./datas/beijing_tianqi/beijing_tianqi_2018.csv"
df = pd.read_csv(fpath)
# 替换掉温度的后缀℃
df.loc[:, "bWendu"] = df["bWendu"].str.replace("℃", "").astype('int32')
df.loc[:, "yWendu"] = df["yWendu"].str.replace("℃", "").astype('int32')
df.head()
# 新增一列为月份
df['month'] = df['ymd'].str[:7]
df.head()

1、查看每个月的最高温度

data = df.groupby('month')['bWendu'].max()
data
data.plot()#绘图

2、查看每个月的最高温度、最低温度、平均空气质量指数

group_data = df.groupby('month').agg({"bWendu":np.max, "yWendu":np.min, "aqi":np.mean})
group_data.plot()

到此这篇关于Pandas实现groupby分组统计的实践的文章就介绍到这了,更多相关Pandas groupby分组统计内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Pandas实现groupby分组统计的实践

本文链接: https://www.lsjlt.com/news/163099.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Pandas实现groupby分组统计的实践
    目录1、创建数据和导入包2、分组使用聚合函数做数据统计3、遍历groupby的结果理解执行流程4、实例分组探索天气数据类似SQL:select city,max(tempe...
    99+
    2024-04-02
  • pandas中groupby操作实现
    目录一、实验目的二、实验原理三、实验环境四、实验内容五、实验步骤一、实验目的 熟练掌握pandas中的groupby操作 二、实验原理 groupby(by=None, axis=0...
    99+
    2023-02-13
    pandas groupby操作 pandas groupby
  • Pandas 实现分组计数且不计重复
    在对dataframe进行分析的时候会遇到需要分组计数,计数的column中属性有重复,但又需要仅对不重复的项计数(即重复N次出现的项只计1次)。 函数如下: dataframe.g...
    99+
    2024-04-02
  • python中pandas对多列进行分组统计的实现
    使用groupby([ ]).size()统计的结果,值相同的字段值会不显示 如上图所示,第一个空着的行是982499 7 3388 1,因为此行与前面一行的这两个字段值是一样...
    99+
    2024-04-02
  • pandas的排序、分组groupby及cumsum累计求和方式
    目录生成一列sum_age 对age 进行累加生成一列sum_age_new 按照 gender和is_good 对age进行累加根据不同的性别对年龄进行 等级 排序对数据排序之后,...
    99+
    2024-04-02
  • Java8中groupBy实现集合的分组
    这篇文章主要介绍Java8中groupBy实现集合的分组,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!场景:Java8的groupBy实现集合的分组,类似Mysql的group by分组功能,注意得到的是一个map1...
    99+
    2023-06-14
  • pandas的排序、分组groupby及cumsum累计求和的方法
    这篇文章主要介绍了pandas的排序、分组groupby及cumsum累计求和的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇pandas的排序、分组groupby及cumsum累计求和的方法文章都会有所收...
    99+
    2023-06-30
  • pandas中groupby操作如何实现
    本文小编为大家详细介绍“pandas中groupby操作如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“pandas中groupby操作如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、实验目的熟...
    99+
    2023-07-05
  • 详解Java8的groupBy实现集合的分组
    场景: Java8的groupBy实现集合的分组,类似Mysql的group by分组功能,注意得到的是一个map 1.对集合按照单个属性分组 e.g. 按照skuId分组 ...
    99+
    2024-04-02
  • pandas groupby分组对象的组内排序解决方案
    问题: 根据数据某列进行分组,选择其中另一列大小top-K的的所在行数据 解析: 求解思路很清晰,即先用groupby对数据进行分组,然后再根据分组后的某一列进行排序,选择排序结果后...
    99+
    2024-04-02
  • python DataFrame数据分组统计groupby()函数的使用
    目录groupby()函数1. groupby基本用法1.1 一级分类_分组求和1.2 二级分类_分组求和1.3 对DataFrameGroupBy对象列名索引(对指定列统计计算)2...
    99+
    2024-04-02
  • SQL汇总统计与GROUPBY过滤查询实现
    目录1、汇总统计2、GROUT BY3、如何对分组统计的结果进行过滤4、如何对分组统计的结果进行排序5、介绍SELECT语句中各个子句的书写顺序6、上方用到的表1、汇总统计 ...
    99+
    2023-01-05
    SQL汇总统计 SQL GROUP BY
  • Pandas如何实现分组数据
    这篇文章给大家分享的是有关Pandas如何实现分组数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。分组数据这种操作在数据科学家和分析师的日常生活中经常执行。Pandas提供了一个基本的函数来执行数据分组,即Gr...
    99+
    2023-06-27
  • 使用Pandas怎么实现一个分组计数功能
    这篇文章将为大家详细讲解有关使用Pandas怎么实现一个分组计数功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在对dataframe进行分析的时候会遇到需要分组计数,计数的column中...
    99+
    2023-06-14
  • pandas实现数据读取&清洗&分析的项目实践
    目录一、数据读取和写入1.1 CSV和txt文件:1.2 Excel文件:1.3 MYSQL数据库:二、数据清洗2.1 清除不需要的行数据2.2 清除不需要的列2.3 调整列的展示顺...
    99+
    2024-04-02
  • 一条sql实现统计总数、分组分别统计总数
    wshanshi:个人使用记录… 一、 方法一 SELECT COALESCE( sex, '总数' ),COUNT( id ) '人数'FROMtestGROUP BYsex WIT...
    99+
    2023-09-02
    sql 数据库 mysql
  • pandas实现按照Series分组示例
    目录1 按照一个Series进行分组2 按照多个Series进行分组3 分组和聚合采用不同的列或Series进行本文用到的表格内容如下: 先来看一下数据情形 import p...
    99+
    2024-04-02
  • Pandas常用累计、同比、环比等统计方法实践过程
    目录1.(本年)累计2.(上年)同期累计3. 上月(完成)4. 同比(增长率)5. 环比(增长率)6. 总结统计表中常常以本年累计、上年同期(累计)、当期(例如当月)完成、上月完成为...
    99+
    2024-04-02
  • pandas 实现分组后取第N行
    目的: 把question_id 对应的user_answer转成ABCD solution dfa=df.groupby('question_id').nth(0).rese...
    99+
    2024-04-02
  • pandas怎么实现按照Series分组
    本篇内容介绍了“pandas怎么实现按照Series分组”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录1 按照一个Series进行分组2...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作