分组聚合不再难:Pandas groupby使用指南

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

处理大量数据时,经常需要对数据进行分组和汇总,groupby为我们提供了一种简洁、高效的方式来实现这些操作,从而简化了数据分析的流程。

1. 分组聚合是什么

分组是指根据一个或多个列的值将数据分成多个组,每个组包含具有相同键值(这里的键值即用来分组的列值)的数据行。

聚合或者汇总则是指,在分组后,可以对每个组应用聚合函数(如求和、平均值、计数等),从而得到每个组的汇总信息。

2. 准备数据

下面的示例中使用的数据采集自A股2024年1月和2月的真实交易数据。
数据下载地址:https://databook.top/。

导入数据:

import pandas as pd

fp = r'D:\data\2024\历史行情数据-不复权-2024.csv'

df = pd.read_csv(fp)
df = df.loc[:, ["股票代码", "日期", "开盘", "收盘", "最高", "最低", "成交量"]]
df

分组聚合不再难:Pandas groupby使用指南

3. groupby 使用示例

下面通过具体的示例演示groupby常用的使用方法。

3.1. 单列分组再聚合

单列聚合是指针对某一列汇总计算,比如:
针对“股票代码”聚合,看看不同股票的开盘价收盘价的平均值。

# 只保留需要的列
data = df.loc[:, ["股票代码", "开盘", "收盘"]]

# 根据股票代码聚合平均值
data.groupby(by=["股票代码"]).mean()

分组聚合不再难:Pandas groupby使用指南
一共5352支股票,聚合之后,红色框内的是每支股票开盘价收盘价的平均值。

3.2. 多列分组再聚合

多列分组聚合时,按照groupbyby参数的顺序,依次进行分组,然后再聚合。
本次的使用的数据包含2024年1月和2月的数据,
我们先按照“股票代码”分组,再按“月份”分组,最后汇总信息。

聚合之前,先把日期的格式转换成月的形式:

data = df.loc[:, ["股票代码", "日期", "开盘", "收盘"]]
data["日期"] = data["日期"].str.slice(0, 7)
data

分组聚合不再难:Pandas groupby使用指南

根据“股票代码”“日期”来聚合每支股票每个月的开盘价收盘价的最大值:

data.groupby(by=["股票代码", "日期"]).max()

分组聚合不再难:Pandas groupby使用指南
聚合之后的DataFrame,有2Index(索引)。

3.3. 一次分组多次聚合

聚合汇总信息时,可以一次汇总多个信息,这样分组一次就可以了,不用每次聚合都重复调用groupby去分组。
比如,下面的示例一次汇总出每支股票每个月开盘价收盘价最大值最小值平均值

data.groupby(by=["股票代码", "日期"]).agg(["mean", "max", "min"])

分组聚合不再难:Pandas groupby使用指南

3.4. 定制分组的聚合方式

更进一步,我们还可以针对不同的列采用不同的聚合方式。
比如,对开盘价汇总最大值平均值,对收盘价汇总最小值平均值

data.groupby(by=["股票代码", "日期"]).agg(
    {
        "开盘": ["max", "mean"],
        "收盘": ["min", "mean"],
    }
)

分组聚合不再难:Pandas groupby使用指南

3.5. 聚合后重置索引

从上面聚合后数据的截图中,可以发现,聚合之后,分组用的列(比如 ["股票代码", "日期"])变为索引。
分组聚合不再难:Pandas groupby使用指南
如上所示,聚合之后返回的DataFrame,红色框内的是索引(index),蓝色框内的是列(columns)。

如果,我们希望分组聚合统计之后,分组的列(比如 ["股票代码", "日期"])仍然作为DataFrame的列,
可以在groupby分组时使用as_index=False参数。

data.groupby(by=["股票代码", "日期"], as_index=False).agg(
    {
        "开盘": ["max", "mean"],
        "收盘": ["min", "mean"],
    }
)

分组聚合不再难:Pandas groupby使用指南
这样的话,分组的列(比如 ["股票代码", "日期"])就不会成为索引。

4. 总结

总的来说,groupby 函数是 pandas 库中一个非常常用的工具,它大大简化了数据处理和分析的过程,
使得用户能够更高效地洞察和理解数据。文章来源地址https://www.toymoban.com/news/detail-837879.html

到了这里,关于分组聚合不再难:Pandas groupby使用指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • pandas数据分析——groupby得到分组后的数据

    Pandas怎样实现groupby聚合后字符串列的合并(四十) pandas—groupby如何得到分组里的数据 在处理时间序列的数据中,有时候会遇到有些日期的数据缺失的情况,这时候可以用pandas的 date_range 函数快速补齐缺失日期,再根据实际情况补齐缺失值。 常用参数为: start :指定生成时

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

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

    2024年01月16日
    浏览(35)
  • 数据分析 — Pandas 分组聚合

    pandas.apply() 是 Pandas 库中的一个函数,用于在 DataFrame 或 Series 上应用自定义函数。这个函数可以 沿着指定的轴(行或列)逐行或逐列地应用函数 ,从而实现对数据的定制化操作。 参数: func(必需):这是要应用的函数,可以是一个 Python 函数、lambda 函数或可调用对象。这

    2024年02月19日
    浏览(31)
  • 使用Pandas进行数据处理和分析的入门指南

    摘要:本文将介绍如何使用Python的Pandas库进行数据处理和分析,包括数据导入、数据清洗、数据转换和简单分析等方面的内容。 在数据科学和数据分析领域,数据处理是一个关键的步骤。Python的Pandas库提供了强大且易于使用的工具,使数据处理变得简单和高效。本文将引导您

    2024年02月10日
    浏览(64)
  • 【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 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)
  • 【Python】Pandas Groupby操作的25个示例

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

    2024年02月03日
    浏览(38)
  • 使用Elasticsearch进行分组聚合统计

    要使用Elasticsearch进行分组聚合统计,可以使用聚合(aggregation)功能。聚合操作允许您根据指定的条件对文档进行分组,并计算每个分组的聚合结果。 针对普通类型的字段,DSL构建语法: aggs: aggregations的别名,代表着分组 agg_name: 这个是自定义的名字,可以针对你自己

    2024年02月15日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包