【Pandas】pandas Series groupby

Pandas2.2 Series

Function application, GroupBy & window

方法描述
Series.apply()用于将一个函数应用到 Series 的每个元素或整个 Series
Series.agg()用于对 Series 数据进行聚合操作
Series.aggregate()用于对 Series 数据进行聚合操作
Series.transform()用于对 Series 数据进行转换操作
Series.map()用于将 Series 中的每个元素映射为新的值
Series.groupby()用于根据一个或多个键对 Series 进行分组

pandas.Series.groupby

pandas.Series.groupby 是 Pandas 库中 Series 对象的一个方法,用于根据一个或多个键对 Series 进行分组。分组后可以对每个分组应用聚合、转换等操作。groupby 方法是数据分析中非常重要的工具,特别适用于需要按类别汇总或分析数据的场景。

方法签名
Series.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, observed=False, dropna=True)
  • by: 用于分组的键。可以是:
    • 列名(字符串)。
    • 数组、列表、字典或其他序列。
    • 函数,接受索引值并返回分组键。
  • axis: 指定轴,默认为 0,表示沿索引方向进行分组。
  • level: 如果 Series 具有多级索引,指定使用哪一级作为分组键。
  • as_index: 是否将分组键作为结果的索引,默认为 True
  • sort: 是否对分组键进行排序,默认为 True
  • group_keys: 是否在结果中包含分组键,默认为 True
  • observed: 是否仅显示观察到的分类变量,默认为 False
  • dropna: 是否排除包含缺失值的分组,默认为 True
主要特点
  • 灵活分组:可以根据多种类型的键进行分组,包括列名、数组、函数等。
  • 多级索引支持:支持对具有多级索引的数据进行分组。
  • 聚合和转换:分组后可以应用聚合函数(如 sum, mean 等)或转换函数(如 transform)。
  • 处理缺失值:可以通过参数控制是否排除包含缺失值的分组。
示例及结果
示例1:基于简单键分组
import pandas as pd# 创建一个 Series
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'a', 'b', 'c'])# 使用 groupby 方法按索引分组,并计算每组的和
result = s.groupby(level=0).sum()print("基于简单键分组结果:")
print(result)
输出结果:
基于简单键分组结果:
a    4
b    6
c    5
dtype: int64

在这个例子中,Series 根据其索引进行分组,并对每个分组求和。

示例2:基于函数分组
import pandas as pd# 创建一个 Series
s = pd.Series([1, 2, 3, 4, 5], index=[1, 2, 3, 4, 5])# 使用 groupby 方法按索引的奇偶性分组,并计算每组的平均值
def is_odd(x):return 'odd' if x % 2 != 0 else 'even'result = s.groupby(is_odd).mean()print("基于函数分组结果:")
print(result)
输出结果:
基于函数分组结果:    
even    3.0
odd     3.0
dtype: float64 

在这个例子中,Series 根据索引的奇偶性进行分组,并对每个分组求平均值。

示例3:基于外部数组分组
import pandas as pd# 创建一个 Series
s = pd.Series([1, 2, 3, 4, 5])# 使用 groupby 方法按外部数组分组,并计算每组的和
groups = ['A', 'B', 'A', 'B', 'C']
result = s.groupby(groups).sum()print("基于外部数组分组结果:")
print(result)
输出结果:
基于外部数组分组结果:
A    4
B    6
C    5
dtype: int64

在这个例子中,Series 根据外部数组 groups 进行分组,并对每个分组求和。

示例4:多级索引分组
import pandas as pd# 创建一个多级索引的 Series
index = pd.MultiIndex.from_tuples([('A', 'x'), ('A', 'y'), ('B', 'x'), ('B', 'y')], names=['first', 'second'])
s = pd.Series([1, 2, 3, 4], index=index)# 使用 groupby 方法按多级索引的第一级分组,并计算每组的和
result = s.groupby(level='first').sum()print("多级索引分组结果:")
print(result)
输出结果:
多级索引分组结果:
first
A    3
B    7
dtype: int64

在这个例子中,Series 根据多级索引的第一级 first 进行分组,并对每个分组求和。

示例5:分组后应用多个聚合函数
import pandas as pd# 创建一个 Series
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'a', 'b', 'c'])# 使用 groupby 方法按索引分组,并应用多个聚合函数
result = s.groupby(level=0).agg(['sum', 'mean'])print("分组后应用多个聚合函数结果:")
print(result)
输出结果:
分组后应用多个聚合函数结果:sum  mean
a    4   2.0
b    6   3.0
c    5   5.0

在这个例子中,Series 根据其索引进行分组,并对每个分组应用了 summean 两个聚合函数。

总结

pandas.Series.groupby 方法在数据分析和处理中非常有用,特别是在需要按类别汇总或分析数据时。它支持多种分组键类型、多级索引分组以及分组后的聚合和转换操作。通过这些示例,可以看到 groupby() 方法在不同场景下的应用及其强大功能。

请注意,groupby 方法通常与聚合函数(如 sum, mean 等)或转换函数(如 transform)结合使用,以实现更复杂的数据分析任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/5219.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PIC单片机设置bootloader程序和app程序地址方法

在调试bootloader和app程序的时候通常都需要设置程序的偏移地址,下面就总结一下使用MPLAB X IDE 设置程序地址的方法。 打开bootloader工程 工程上单击鼠标右键,选择Properties,打工工程属性窗口。 此时会打开项目属性对话框 左边类别选择XC8 Line…

51c大模型~合集105

我自己的原文哦~ https://blog.51cto.com/whaosoft/13101924 #刚刚,ChatGPT开始有了执行力! 现在 AI 智能体可以 24*7 小时为你打工。 2025 刚过去了半个月,OpenAI 在智能体领域「开大」了。 今天,OpenAI 正在为 ChatGPT 推出…

迅为龙芯2K1000开发板/核心板流畅运行Busybox、Buildroot、Loognix、QT5.12系统

硬件配置 国产龙芯处理器,双核64位系统,板载2G DDR3内存,流畅运行Busybox、Buildroot、Loognix、QT5.12 系统! 接口全板载4路USB HOST、2路千兆以太网、2路UART、2路CAN总线、Mini PCIE、SATA固态盘接口、4G接口、GPS接口WIF1、蓝牙、Mini H…

StarRocks强大的实时数据分析

代码仓库:https://github.com/StarRocks/starrocks?tabreadme-ov-file StarRocks | A High-Performance Analytical Database 快速开始:StarRocks | StarRocks StarRocks 是一款高性能分析型数据仓库,使用向量化、MPP 架构、CBO、智能物化…

web前端1--基础

(时隔数月我又来写笔记啦~) 1、下载vscode 1、官网下载:Visual Studio Code - Code Editing. Redefined 2、步骤: 1、点击同意 一直下一步 勾一个创建桌面快捷方式 在一直下一步 2、在桌面新建文件夹 拖到vscode图标上 打开v…

基于tldextract提取URL里的子域名、主域名、顶级域

TLD是TopLevel Domain的缩写。‌tldextract‌ 是一个用于从URL中提取子域、主域名和顶级域(TLD)的Python库。它利用公共后缀列表(Public Suffix List)来确保即使是复杂或不常见的URL结构也能被正确解析。tldextract能够处理包括IC…

音频入门(一):音频基础知识与分类的基本流程

音频信号和图像信号在做分类时的基本流程类似,区别就在于预处理部分存在不同;本文简单介绍了下音频处理的方法,以及利用深度学习模型分类的基本流程。 目录 一、音频信号简介 1. 什么是音频信号 2. 音频信号长什么样 二、音频的深度学习分…

数据结构之堆排序

文章目录 堆排序版本一图文理解 版本二向下调整建堆向上调整建堆 排升/降序升序 堆排序 版本一 基于已有数组建堆取堆顶元素并删除堆顶元素重新建大根堆,完成排序版本。 图文理解 版本二 前提:必须提供有现成的数据结构堆 数组建堆,首尾…

小菜鸟系统学习Python第三天

1.优先级问题: 结论: 幂运算>正负号>加减乘除和整除>比较运算符>逻辑运算符 2.三元运算符 3.assert断言:抛出AssertionError异常 4.for循环 4. 5.break和continue

常用排序算法之插入排序

目录 前言 一、基本原理 1.算法步骤 2.动画演示 3.插入排序的实现代码 二、插入排序的时间复杂度 1. 时间复杂度 1.最优时间复杂度 2.最差时间复杂度 3.平均时间复杂度 2. 空间复杂度 三、插入排序的优缺点 1.优点 2.缺点 四、插入排序的改进与变种 五、插入排…

数据分析及应用:经营分析中的综合指标解析与应用

目录 1. 市场份额(Market Share) 2. 客户获取成本(Customer Acquisition Cost, CAC) 3. 客户生命周期价值(Customer Lifetime Value, CLV) 4. 客户留存率(Customer Retention Rate, CRR) 5. 净推荐值(Net Promoter Score, NPS) 6. 转化率(Conversion Rate) …

工业相机 SDK 二次开发-Halcon 插件

本文介绍了 Halcon 连接相机时插件的使用。通过本套插件可连接海康 的工业相机。 一. 环境配置 1. 拷贝动态库 在 用 户 安 装 MVS 目 录 下 按 照 如 下 路 径 Development\ThirdPartyPlatformAdapter 找到目录为 HalconHDevelop 的文 件夹,根据 Halcon 版本找到对…

【Vim Masterclass 笔记25】S10L45:Vim 多窗口的常用操作方法及相关注意事项

文章目录 S10L45 Working with Multiple Windows1 水平分割窗口2 在水平分割的新窗口中显示其它文件内容3 垂直分割窗口4 窗口的关闭5 在同一窗口水平拆分出多个窗口6 关闭其余窗口7 让四个文件呈田字形排列8 光标在多窗口中的定位9 调节子窗口的尺寸大小10 变换子窗口的位置11…

Linux TCP 之 RTT 采集与 RTO 计算

我们来看看 Linux TCP 采集 RTT 的函数 tcp_rtt_estimator,看注释,充满了胶着。 但在那个谨慎的年代,这些意味着什么? RTT 最初仅用于 RTO 的计算而不是用于调速,RTO 的计算存在两个问题,如果过估&#x…

如何使用CRM数据分析优化销售和客户关系?

嘿,大家好!你有没有想过为什么有些公司在市场上如鱼得水,而另一些却在苦苦挣扎?答案可能就藏在他们的销售策略和客户关系管理(CRM)系统里。今天我们要聊的就是如何通过有效的 CRM 数据分析来提升你的销售额…

《Effective Java》学习笔记——第2部分 对象通用方法最佳实践

文章目录 第2部分 所有对象通用方法一、前言二、最佳实践内容1. equals()方法2. hashCode()方法3. toString() 方法4. clone() 方法5. finalize() 方法6. compareTo()方法(实现 Comparable 接口) 三、小结 第2部分 所有对象通用方法 一、前言 《Effect…

前沿技术趋势洞察:2024年技术的崭新篇章与未来走向!

引言 时光飞逝,2024年已经来临,回顾过去一年,科技的迅猛进步简直让人目不暇接。 在人工智能(AI)越来越强大的今天,我们不再停留在幻想阶段,量子计算的雏形开始展示它的无穷潜力,Web …

图的基本概念

一、图 二、顶点的度 三、图的同构 ​​​​​​​​​​​ 四、完全图 五、子图 六、补图

【游戏设计原理】75 - 最小最大化

一、理解与分析 最小/最大化的核心是玩家在角色扮演类游戏中使用的一种策略,旨在通过把角色的某些不利特性最小化、而有利特性最大化来增强角色在特定领域的优势。这种策略通常表现为以下几种形式: 角色单一化:玩家通过极端优化角色的某一项…

【K8S系列】K8s 领域深度剖析:年度技术、工具与实战总结

引言 Kubernetes作为容器编排领域的行业标准,在过去一年里持续进化,深刻推动着云原生应用开发与部署模式的革新。本文我将深入总结在使用K8s特定技术领域的进展,分享在过去一年中相关技术工具及平台的使用体会,并展示基于K8s的技术…