Pandas怎样实现groupby分组统计

这篇具有很好参考价值的文章主要介绍了Pandas怎样实现groupby分组统计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、如何实现分组统计
groupby:先对数据分组,然后在每个分组上应用聚合函数、转换函数
通过三个实例来了解pandas是如何实现分组统计的
一、分组使用聚合函数做数据统计
二、遍历groupby的结果理解执行流程
三、实例分组探索天气数据

导入数据

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

Pandas怎样实现groupby分组统计

二、分组使用聚合函数做数据统计
1、单个列groupby,查询所有数据列的统计

我们看到:

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

Pandas怎样实现groupby分组统计

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

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

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

Pandas怎样实现groupby分组统计

3、同时查看多种数据统计
我们看到:列变成了多级索引
df.groupby('A').agg([np.sum, np.mean, np.std])

Pandas怎样实现groupby分组统计

4、查看单列的结果数据统计
# 方法1:预过滤,性能更好
df.groupby('A')['C'].agg([np.sum, np.mean, np.std])

Pandas怎样实现groupby分组统计

# 方法2
df.groupby('A').agg([np.sum, np.mean, np.std])['C']

Pandas怎样实现groupby分组统计

5、不同列使用不同的聚合函数
df.groupby('A').agg({"C":np.sum, "D":np.mean})

Pandas怎样实现groupby分组统计

三、遍历groupby的结果理解执行流程
for循环可以直接遍历每个group

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

g = df.groupby('A')
for name,group in g:
    print(name)
    print(group)
    print()

Pandas怎样实现groupby分组统计
1.1、可以获取单个分组的数据

g.get_group('bar')

Pandas怎样实现groupby分组统计
2、遍历多个列聚合的分组

g = df.groupby(['A', 'B'])
for name,group in g:
    print(name)
    print(group)
    print()
#可以看到,name是一个2个元素的tuple,代表不同的列

Pandas怎样实现groupby分组统计

g.get_group(('foo', 'one'))

Pandas怎样实现groupby分组统计

四、实例分组探索天气数据
fpath = "./datas/beijing_tianqi_2018.csv"
df = pd.read_csv(fpath)
# 替换掉温度的后缀℃
df.loc[:, "bWendu"] = df["bWendu"].str.replace("℃", "").astype('int64')
df.loc[:, "yWendu"] = df["yWendu"].str.replace("℃", "").astype('int64')
df.head()

Pandas怎样实现groupby分组统计

# 新增一列为月份
df['month'] = df['ymd'].str[:7]
df.head()

Pandas怎样实现groupby分组统计
1、查看每个月的最高温度

data = df.groupby('month')['bWendu'].max()
data

Pandas怎样实现groupby分组统计
type(data)

pandas.core.series.Series

2、查看每个月的最高温度、最低温度、平均空气质量指数
df.head()
Pandas怎样实现groupby分组统计

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

Pandas怎样实现groupby分组统计文章来源地址https://www.toymoban.com/news/detail-485030.html

到了这里,关于Pandas怎样实现groupby分组统计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python DataFrame数据分组统计groupby()函数

    df = pd.DataFrame(data=data, index=index, columns=columns) print(df) print(“=================================================”) df1 = df.groupby([‘class_1’, ‘class_2’]).sum() # 分组统计求和 print(df1) 1.3 对DataFrameGroupBy对象列名索引(对指定列统计计算) 其中,df.groupby(‘class_1’)得到一个DataFrameGroupBy对象,

    2024年04月25日
    浏览(25)
  • Pandas.DataFrame.groupby() 数据分组(数据透视、分类汇总) 详解 含代码 含测试数据集 随Pandas版本持续更新

    关于Pandas版本: 本文基于 pandas2.2.0 编写。 关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。 传送门: Pandas API参考目录 传送门: Pandas 版本更新及新特性 传送门: Pandas 由浅入深系列教程 DataFrame.groupby() 方法用于使用映射器或指定的列,对 D

    2024年01月16日
    浏览(35)
  • 【100天精通Python】Day57:Python 数据分析_Pandas数据描述性统计,分组聚合,数据透视表和相关性分析

    目录 1 描述性统计(Descriptive Statistics) 2 数据分组和聚合 3 数据透视表 4 相关性分析

    2024年02月07日
    浏览(42)
  • pandas——groupby操作

    作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪 熟练掌握

    2024年02月07日
    浏览(28)
  • pandas笔记:groupby整理

    按照Type 聚类,聚类后将同组的Kg属性合并,求均值 聚合的内容可以是 max, min, mean, unique(唯一值), nunique(唯一值数量),lambda 表达式       按照Type 聚类,聚类后将同组的Kg、Depth属性合并,求均值   重命名的名字=(需要操作的列名,需要的操作名)       参考内容:

    2024年02月16日
    浏览(33)
  • 【Python】Pandas Groupby操作的25个示例

    在日常的数据分析中,经常需要将数据根据某个(多个)字段划分为不同的群体(group)进行分析,如电商领域将全国的总销售额根据省份进行划分,分析各省销售额的变化情况,社交领域将用户根据画像(性别、年龄)进行细分,研究用户的使用情况和偏好等。在Pandas中,

    2024年02月03日
    浏览(38)
  • 如何在Stream流中分组统计

    上面是今天碰到需求,之前就做过类似的分组统计,这个相对来说比较简单,统计的也少, 序号 和 总预约人数 这两部分交给前端了,不需要由后端统计,后端统计一下 预约日期 和 检查项目 和 预约人数 就行;

    2024年02月13日
    浏览(50)
  • Java8 Stream分组groupBy后,取单一字段值、取列表第一个值方式

    java8 Stream中groupBy的拓展用法。 取单一字段值、取列表第一个值方式

    2024年02月14日
    浏览(28)
  • golang实现es根据某字段分组,统计每组某一字段的数量,过滤空值并去重

    需求: 索引:dna 需求:根据app.Id分组,统计每组的OwnerBid数量,过滤空值并去重 dna索引结构 es查询语句 es查询结果 goalng实现 models.EsCountAgg 【面向校招】全力备战2023Golang实习与校招 欢迎进群交流:1007576722

    2024年02月17日
    浏览(37)
  • Java8用Stream流一行代码实现数据分组统计,排序,最大值、最小值、平均值、总数、合计

    Java8对数据处理可谓十分流畅,既不改变数据,又能对数据进行很好的处理,今天给大家演示下,用Java8的Stream如何对数据进行分组统计,排序,求和等 汇总统计方法 找到汇总统计的方法。这些方法属于java 8的汇总统计类。 getAverage(): 它返回所有接受值的平均值。 getCount():

    2023年04月20日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包