pandas分割、应用和组合(groupby)

[Python3] Pandas v1.0 —— (五) 累计与分组 文章目录八、累计与分组(一)Pandas的简单累计功能Pandas的累计方法(二)GroupBy:分割、应用和组合1. 分割、应用和组合2. GroupBy 对象3. 累计、过滤、转换和应用4. 设置分割的键 八、累计与分组 在对较大的数据进行分析时,一项基本的工作就是有效的数据累计(summarization):计算累计(aggregation)指标,如sum(), mean(), media... 阅读详情

import numpy as np
import pandas as pd


groupby对象

df1 = pd.DataFrame({'key':['A','B','C','A','B','C'],'data':range(6)},columns=['key','data'])
df1.groupby('key').sum()
# 将所有的列都进行求和,所以生成的是DataFrame

结果1

按列取值

df1.groupby('key')['data'].sum()

在这里插入图片描述

df1.groupby('key')['data'].describe()
# 可以直接调用方法

在这里插入图片描述


groupby对象可以按组迭代

for (m,g) in df1.groupby('key'):
    print(m,g)

在这里插入图片描述


累计、过滤、转换和应用

rng = np.random.RandomState(0)
df = pd.DataFrame({'key':['A','B','C','A','B','C'],
                  'data1':range(6),
                  'data2':rng.randint(0,10,6)},
                 columns=['key','data1','data2'])

在这里插入图片描述

累计

df.groupby('key').aggregate(['min',np.median,max])
# aggregate函数中可以指定多个统计方法,用列表传入进去

在这里插入图片描述

df.groupby('key').aggregate({'data1':sum,'data2':'max'})
# 也可以指定不同列,不同的统计方法,将一个列名为键,统计方法为值的字典传入进去

在这里插入图片描述

过滤

# 可以编写一个过滤函数,或者写一个lambda表达式用于过滤
# 传入的参数是每一组的数据
def filter_func(x):
    return x['data2'].std()>4
f = lambda x:x['data2'].std()>4
# 分组之后,组内data2值的标准差要大于4

print(df);print(df.groupby('key').std())

df.groupby('key').filter(f)
# 返回一个过滤后的DataFrame

在这里插入图片描述

转换

df.groupby('key').transform(lambda x:x-x.mean())

在这里插入图片描述

apply方法

def norm(x):
    x['data1'] /= x['data2'].sum()
    return x
df.groupby('key').apply(norm)

在这里插入图片描述

转换transform方法,和apply方法类似,transform是将所有的列都带入指定的方法处理,apply而是将整个DataFrame带入,处理指定的列

df.groupby('key').apply(lambda x:x-x.mean())
df.groupby('key').transform(lambda x:x-x.mean())
# 结果相同


apply和filter中传入的方法的区别

apply中的方法,输入的是分组数据的DataFrame,返回的是pandas对象或者标量,用于替换/添加数据

filter中的方法,输入的是分组数据的DataFrame,返回的是一个布尔类型的数据,用于过滤数据



设置分割的键

上面的分组都是以一列进行分割的,groupby还支持多种分组方式

将列表、数组、Series或者索引作为分组键

# 根据指定列表进行分组
l = [0,1,0,1,2,0]
print(df)
df.groupby(l).aggregate([sum,np.std])

在这里插入图片描述

# 指定Series来进行分组
df.groupby(df.key).sum()

在这里插入图片描述


用字典或Series将索引映射到索引名称

df=df.set_index('key')
mapp = {'A':'V','B':'Y','C':'Y'}

df.groupby(mapp).aggregate(sum)
# 默认是根据索引传进去进行分组

在这里插入图片描述



任意的python函数

df.groupby(str.lower).sum()
# 默认是根据索引传进去进行分组

在这里插入图片描述



多个有效键构成的列表

df.groupby([str.lower,l]).sum()
# 按照索引的小写,和l列表进行分组

在这里插入图片描述

pandas分组与聚合groupby()函数详解 groupby分组与聚合、分层索引、设置是否包含NaN、排除组键,星巴克零售店铺数据下载,星巴克零售店铺directory.csv数据获取,groupby用法详解,pandas分组与聚合,groupby如何使用 阅读详情

相关推荐

QGIS三维地形可视化实战:从DEM数据到炫酷3D场景(附Qgis2threejs插件配置)

本文详细介绍了如何利用QGIS和Qgis2threejs插件,将DEM数据转化为交互式三维地形场景的完整工作流。核心内容包括DEM数据准备、坐标系选择(重点对比WGS 84与UTM的差异及影响)、插件核心参数配置、卫星影像与等高线叠加等进阶技巧,并提供了成果导出与常见问题解决方案,帮助用户高效创建可用于网页展示的炫酷3D可视化成果。

mqtt6iot的博客 875

pandas 数据处理-Group by操作

使用 “group by” 方式我们通常会有以下一个或几个步骤: Splitting:根据某一准则对数据分组 Applying :对每一分组数据运用某个方法 Combining :将结果组合为数据结构 在上述步骤中,split 方法较直接,在 split 之后我们希望对分组数据做相关计算,在 apply 步骤中我们可能想对数据进行如下操作: Aggregation::聚合操作,对分组数据做汇总统计,如计算sums 或 means、统计分组个数 counts Transformation

weixin_40994552的博客 2244

用HFSS复现经典论文:从零搭建带孔缝屏蔽箱体模型(附完整建模步骤与避坑指南)

本文详细介绍了如何使用HFSS电磁仿真软件复现经典论文中的带孔缝屏蔽箱体模型,包括从零搭建模型、设置激励与边界条件、求解优化及结果验证的全过程。特别提供了建模中的布尔运算陷阱、激励设置技巧等实操难点的避坑指南,帮助工程师和学生深入理解电磁屏蔽效能研究。

weixin_30530339的博客 157

【python】pandas中dataframe连接及数组分割及合并

本文主要学习pandas中dataframe的连接,如concat函数、merge函数、join函数,并区分了内连接、外连接、左连接、右连接;以及numpy中的数组分割及合并,学习vstack()、hstack()、vsplit()、hsplit()、spli()等函数。

m0_61796189的博客 6011

携程登录风控逆向踩坑实录:从滑块到点选验证码,我是如何一步步拿到phantom-token的

本文详细解析了携程登录风控系统的逆向过程,从滑块验证码到点选验证码的破解,再到设备指纹生成和加密协议逆向,最终成功获取phantom-token。文章提供了关键代码示例和实战技巧,帮助开发者理解并绕过复杂的风控机制。

weixin_28049429的博客 968

YOLOv8损失函数升级:从CIoU到Wise-IoU v3的实战调优与避坑指南

本文详细介绍了如何将YOLOv8的损失函数从CIoU升级到Wise-IoU v3,以提升目标检测性能,特别是在小目标检测和样本不均衡场景下的表现。通过实战调优步骤和避坑指南,帮助开发者有效应用Wise-IoU v3的动态聚焦机制和单调性控制,显著提升模型精度和训练稳定性。

weixin_33737774的博客 590

pandas的字符串的分割之str.split()

分列在我们日常工作中经常用到,从各种系统中导出的什么订单号、名称、日期很多都是复合组成的,这些列在匹配、合并时没有办法使用,我们经常需要将她们分开。 像下面的DataFrame, 城市是复合的,变电站也是复合的,我们只需要一部分,要怎么操作呢? DataFrame数据 网上搜索了一下,以前的做法是将要分的那列迭代并用split()分开,然后将分开后的数据新建一个DataFrame,然后再...

lyy的博客 2万+

零基础用AHK操作Excel:从数据读取到自动填写(附完整脚本解析)

本文为零基础用户详细介绍了如何使用AutoHotkey(AHK)通过COM接口高效操作Excel,实现从数据自动读取到填写的完整自动化流程。文章包含完整的脚本解析、环境搭建指南、核心代码逐行讲解以及实际应用案例,帮助办公人员大幅提升数据处理效率,告别重复劳动。

weixin_29202213的博客 552

python高级-21.pandas - 数据拆分

目录数据拆分pd.cut()duplicates: str = 'raise' / 'drop'pd.qcut()检查和过滤异常值18-60有多少人Series.apply(某个函数)DataFrame.applymap(某个函数) import numpy as np import pandas as pd from pandas import Series,DataFrame from numpy import nan as NA import matplotlib.pyplot as plt plt.

weixin_47440383的博客 1736

高级数据结构之R树(R-tree)

R树(R-tree)是一种将B树扩展到多维情况下得到的数据结构,它最初由Antonin Guttman于1984年提出。B树的结点中会存储一个键的集合,这些键把线分成片段,沿着那条线的点仅属于一个片段。因此,B树使得我们可以很容易地找到点。如果把沿线各处的点表示成B树结点,我们就能够确定点所属唯一子结点,在那里可以找到该点。 Antonin Guttman在他提出R树的经典论文中给出的R树例子...

白马负金羁 1万+

uniapp+coze制作app智能体

使用 UniApp 配合 Coze 平台来开发一个具备 AI 智能体的 App,是一个高效且实用的选择。其核心思路主要有两种:一种是通过,另一种则是通过实现更自主的集成。下面的流程图可以帮你快速了解这两种方案的全貌。下面,我们来详细看看这两种方案分别如何操作。

suny8的专栏 573

Pandas高阶篇五(数据的拆分与分割)

数据的拆分 pandas返回的是一个 特殊的 Categorical对象。 你可以将其看做一组表 示面元名称的字符串。 实际上,它含有一个表示 不同分类名称的levels数 组以及一个为年龄数据 进行标号的labels属性。 跟“区间”的数学符号 一样,圆括号表示开端,而 方括号则表示闭端(包括)。 哪边是闭端可以通过right. 也可以自定义label名称。 ...

qq_42379006的博客 3万+

腾讯音乐 QQ音乐商业化客户端开发工程师:岗位深度解析与面试攻略

腾讯音乐QQ音乐商业化客户端开发工程师岗位要求3年以上Android开发经验,熟练掌握Kotlin/Java及跨端开发技术。核心职责包括QQ音乐客户端功能开发、架构优化、性能提升及技术攻关。岗位要求计算机相关本科以上学历,具备完整项目开发经验,熟悉TCP/IP等网络协议,能独立解决复杂技术问题。面试重点考察项目经验、架构设计、性能优化及新技术研究能力,建议候选人准备具体案例,量化成果,并熟悉Flutter等跨端技术。该职位强调技术深度与产品思维的结合,需展现扎实的编程基础、问题解决能力和团队协作精神。

郑伟强dev的专栏 365

Pandas Groupby:分割,应用和组合

Groupby:分割、应用和组合 下图清晰地描述了Groupby的过程。 分割步骤将DataFrame按照指定的键分割成若干组。 应用步骤对每个组应用函数,通常是累计、转换或过滤函数。 组合步骤将每一组的结果合并成一个输出数组。 下面我们以下面为例。 原始数据表是这样的。为了展示方便,删除了后面的数据,总共17条数据 我们先导入数据 我们可以用DataFrame的groupby()方法进行绝大多数常见的分割-应用-组合操作,将需要分组的列名传进去即可: 这里返回的值不是一个DataFrame对象,而是一个

weixin_43837522的博客 670

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

pandas中GroupBy:分割,应用和组合(最全解析)

1、groupby主要用于数据的某些标签或索引的局部进行累计分析,大致过程为输入,分割,应用,组合。 import numpy as np import pandas as pd df = pd.DataFrame({'key':['A','B','C','A','B','C'], 'data':range(6)},columns = ['key','da...

qq_36044523的博客 2169

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Pandas GroupBy 分组(分割-应用-组合)

简介 分组(group by)一般是指三个过程 分割(Splitting)将数据按照某个标准分组 应用(Applying)对每个分组分别使用函数 组合(Combining)将结果组合成数据框 groupby对象 import pandas as ...

chuanglongquan4694的博客 743

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Pandas 分组(GroupBy)

任何分组(groupby)操作都涉及原始对象的以下操作之一。它们是 - 分割对象 应用一个函数 结合的结果 在许多情况下,我们将数据分成多个集合,并在每个子集上应用一些函数。在应用函数中,可以执行以下操作 - 聚合 - 计算汇总统计 转换 - 执行一些特定于组的操作 过滤 - 在某些情况下丢弃数据 下面来看看创建一个DataFrame对象并对其执行所有操作 - import pan...

W_H_M_2018的博客 847

【Python数据科学手册】Pandas——九、累计与分组groupby

九、累计与分组 1.获取数据 本节用一份Seaborn 程序库行星数据来进行演示 2.Pandas的简单累计功能 df.sum(axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs) describe() 方法可以计算每一列的若干常用统计值 Pandas的累计方法 指标 描述 c...

Mercy92的博客 1761

pandas之GroupBy分割、应用、组合

1、pandas的累计方法 指标 描述 count() 计数项 first()、last() 第一项与最后一项 mean()、median() 均值与中位数 min()、max() 最小值与最大值 std()、var() 标准差与方差 mad() 均值绝对偏差 prod() 所有项乘积 sum() 所有项求和 ...

reb0rn 981

Pandas GroupBy计算剖析基础:分割、应用与组合

引言 对较大数据进行分析时,有效的数据累计可以呈现大数据集的特征。由于数据集内部数据的多样性,我们不再形容为对单一类型数据的聚合,而是累计(aggregation),这意味着我们将实现在某个类别里的合并同类项。 对于一维数据的和、最值、均值等系列统计指标在这里不再赘述。对于二维的,有组织的DataFrame你也能通过指定汇总轴轻松得到你想要的结果。 笼统的了解整个数据集是不够的,对某些标签和索引局部的累计分析同样是我们需要的,Pandas里的groupby可以帮助我们做到这一点。但你在分组的时候,中间

Cdccc_daye的博客 1833

dataframe groupby_Pandas笔记深入Groupby详解

前言大家好,我是潜心。上篇文章提到了Groupby,但其中举例的代码有点问题,在提取序列时用到了for循环,效率很慢,后来查找了官方文档,才明白apply的重要性,再次对Groupby进行深入并总结。本文约2.1k字,预计阅读15分钟。Groupby: split-apply-combinePandas中Groupby定义如下:defgroupby(by=None,axis=0,l...

weixin_39748445的博客 852

pandas:分组(GroupBy)

andas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片、切块、摘要等操作。根据一个或多个键(可以是函数、数组或DataFrame列名)拆分pandas对象。计算分组摘要统计,如计数、平均值、标准差,或用户自定义函数。对DataFrame的列应用各种各样的函数。应用组内转换或其他运算,如规格化、线性回归、排名或选取子集等。计算透视表或交叉表。执行分位数分析以及其他...

错位的梦寐的博客 3364

pandas groupby_Pandas笔记深入Groupby,它的功能没有你想的这么简单

点击上方“潜心的Python小屋”关注我们,第一时间推送优质文章。前言大家好,我是潜心。上篇文章提到了Groupby,但其中举例的代码有点问题,在提取序列时用到了for循环,效率很慢,后来查找了官方文档,才明白apply的重要性,再次对Groupby进行深入并总结。本文约2.1k字,预计阅读15分钟。Groupby: split-apply-combinePandas中Groupby定义...

weixin_39752434的博客 312

Pandas Groupby函数

文章目录Groupby参数介绍1.Transform2.Agg聚合3.Apply Groupby DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=<object object>, observed=False, dropna=True) groupby操作涉及到分割对象、应用函数和组合结果的某种组合。这可以用于对大量数据进行分组,并对这些分组进.

BeaNewer的博客 1253

Pandas GroupBy 详解2:深入理解与实践

apply()方法允许我们对每个组执行自定义的操作,具有极高的灵活性。df['标准化销售额'] = df.groupby('城市')['销售额'].apply(standardize)print(df)城市 销售额 月份 平均销售额 标准化销售额0 北京 100 一月 90.0 0.7302971 上海 200 一月 225.0 -0.7071072 广州 150 一月 135.0 0.7071073 北京 80 二月 90.0 -1.095445。

像风一样自由的博客 947
上一篇: pandas合并数据集
下一篇: linux---vim、用户管理和用户组
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力生活的黄先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值