Pandas agg()函数介绍及命名聚合

别再只用mean和sum了!Pandas agg()函数保姆级教程,解锁5种高阶数据聚合姿势 本文深入解析Pandas中agg()函数的高阶用法,超越基础的mean和sum操作。通过5种实用场景展示如何对不同列应用不同聚合函数、使用自定义函数和lambda表达式、同时应用多个聚合函数、结合groupby实现分组聚合,以及命名聚合技巧,帮助数据分析师提升代码效率和可读性。 阅读详情

简介

  • agg() 函数是 Pandas 库中的一个非常强大的函数,用于执行聚合操作。在 Pandas 中,聚合通常指的是对一组值执行某种计算以返回一个单一的值,例如求和、平均值、最大值、最小值等。
  • agg() 函数可以应用于 Pandas 的 Series、DataFrame 或 GroupBy 对象。它允许你灵活地应用一个或多个聚合函数到数据上。

基本用法

  • 应用于Series 
    • import pandas as pd
      
      s = pd.Series([1, 2, 3, 4, 5])
      print(s.agg('sum'))
      # 输出 15
  • 应用于DataFrame
    • import pandas as pd
      
      df = pd.DataFrame({
          'A': [1, 2, 3],
          'B': [4, 5, 6]})
      
      print(df.agg('sum'))  # 对每列求和
      
      '''输出
      A     6
      B    15
      dtype: int64
      '''
  • 使用多个聚合函数
    • 你可以将多个聚合函数放入一个list里传递给 agg() 以在一个操作中获取多个结果。        
    • import pandas as pd
      
      df = pd.DataFrame({
          'A': [1, 2, 3],
          'B': [4, 5, 6]})
      agg_df = df.agg(['sum', 'mean'])
      print(agg_df)
      '''输出
              A     B
      sum   6.0  15.0
      mean  2.0   5.0
      '''
  • 使用自定义函数
    • 你也可以传递自定义的函数给 agg() 来执行聚合操作。
    • 传递给自定义函数custom_agg的参数是pd.Series A列或pd.DataFrame df。
    • 以pd.Series方式df['A']传入A列时返回numpy.float64,以pd.DataFrame方式df[['A']]传入A列时返回Series,如果多个聚合函数返回DataFrame
    • import pandas as pd
      
      def custom_agg(s):
          return s.sum() * s.mean()
      
      df = pd.DataFrame({
          'A': [1, 2, 3],
          'B': [4, 5, 6]})
      print(df.agg(custom_agg))
      print(type(df.agg(custom_agg)))  #<class 'pandas.core.series.Series'>
      '''输出
      A    12.0
      B    75.0
      dtype: float64
      <class 'pandas.core.series.Series'>
      '''
      
      print(df['A'].agg(custom_agg))
      print(type(df['A'].agg(custom_agg)))  #<class 'numpy.float64'>
      '''输出
      12.0
      <class 'numpy.float64'>
      '''
      
      print(df[['A']].agg(custom_agg))
      print(type(df[['A']].agg(custom_agg)))  #<class 'pandas.core.series.Series'>
      '''输出
      A    12.0
      dtype: float64
      <class 'pandas.core.series.Series'>
      '''
      
  • 在Groupby中使用
    • agg() 在 GroupBy 对象中特别有用,允许你对每个组执行聚合操作。
    • import pandas as pd
      
      
      df = pd.DataFrame({
          'A': [1, 2, 3],
          'B': [4, 5, 6]})
      df['Group'] = ['T1', 'T2', 'T1']
      print(df)
      '''output
         A  B Group
      0  1  4    T1
      1  2  5    T2
      2  3  6    T1
      '''
      
      add_df = df.groupby(['Group']).agg(['sum', 'mean'])
      print(add_df)
      '''output
              A        B     
            sum mean sum mean
      Group                  
      T1      4  2.0  10  5.0
      T2      2  2.0   5  5.0
      '''
  • 对不同的列使用不同的agg函数 
  • import pandas as pd
    
    
    df = pd.DataFrame({
        'A': [1, 2, 3],
        'B': [4, 5, 6]})
    df['Group'] = ['T1', 'T2', 'T1']
    print(df)
    '''output
       A  B Group
    0  1  4    T1
    1  2  5    T2
    2  3  6    T1
    '''
    ser1 = df.agg({'A': 'sum', 'B': 'mean'})
    print(ser1)
    print(type(ser1))
    '''output
    A    6.0
    B    5.0
    dtype: float64
    <class 'pandas.core.series.Series'>
    '''

命名聚合 

  • 命名聚合(Named Aggregation)是 Pandas 库中一种特殊的聚合方式,主要用于在 GroupBy 操作中更清晰、明确地指定聚合操作的输出列名以及对应的聚合函数。  
  • 命名聚合通过关键字参数的方式指定输出的列名和对应的聚合函数。具体来说,关键字参数的名字将成为输出 DataFrame 的列名,而对应的值则是要应用的聚合函数。
  • 命名聚合还支持 lambda 函数作为聚合函数,可以方便地进行一些自定义的计算。
  • 命名聚合绝大多数用于 GroupBy 操作 ,很少用于普通的 Series 或 DataFrame 对象。这里也给出用例。
  • 用于普通DataFrame,SUM_A 和MEAN_B输出 DataFrame 的行index
    • import pandas as pd
      
      df = pd.DataFrame({
          'A': [1, 2, 3],
          'B': [4, 5, 6]})
      df['Group'] = ['T1', 'T2', 'T1']
      print(df)
      '''output
         A  B Group
      0  1  4    T1
      1  2  5    T2
      2  3  6    T1
      '''
      
      df2 = df.agg(SUM_A=('A', 'sum'), MEAN_B=('B', 'mean'))
      print(df2)
      print(type(df2))
      '''output
                A    B
      SUM_A   6.0  NaN
      MEAN_B  NaN  5.0
      <class 'pandas.core.frame.DataFrame'>
      '''
      
  • 用于Groupby, SUM_A 和MEAN_B输出 DataFrame 的列名
  • import pandas as pd
    
    df = pd.DataFrame({
        'A': [1, 2, 3],
        'B': [4, 5, 6]})
    df['Group'] = ['T1', 'T2', 'T1']
    print(df)
    '''output
       A  B Group
    0  1  4    T1
    1  2  5    T2
    2  3  6    T1
    '''
    
    df2 = df.agg(SUM_A=('A', 'sum'), MEAN_B=('B', 'mean'))
    print(df2)
    print(type(df2))
    '''output
              A    B
    SUM_A   6.0  NaN
    MEAN_B  NaN  5.0
    <class 'pandas.core.frame.DataFrame'>
    '''
    
    df3 = df.groupby(['Group']).agg(SUM_A=('A', 'sum'), MEAN_B=('B', 'mean'))
    print(df3)
    print(type(df3))
    '''output
           SUM_A  MEAN_B
    Group               
    T1         4     5.0
    T2         2     5.0
    <class 'pandas.core.frame.DataFrame'>
    '''

Pandas知识点-详解聚合函数agg pandas系列:聚合函数agg() 阅读详情

相关推荐

一文读懂pg AGG聚集算子计划与执行(更新中)

一文读懂openGauss/pg AGG聚集算子计划与执行Agg聚集算子与聚集操作(函数)基本概念执行策略聚集操作基本执行步骤与元数据计划生成与数据结构确定操作策略关键数据结构思考数据结构基本执行流程PLAIN-AGG并行执行流程grouping set\cube的执行策略代码走读如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart

Carrot_L的博客 3466

Python Pandas中的数据聚合神器:agg 方法

在数据分析和处理中,数据聚合是将多个数据合并、计算或摘要为单个结果的过程。这个结果通常包括统计信息,如平均值、总和、最大值、最小值等,以便更好地理解和分析数据。Pandas 提供了多种数据聚合方法,其中之一就是agg方法。除了内置的聚合函数,还可以使用自定义函数来进行数据聚合。这将输出2,即薪水高于 70000 的人数。可以编写自定义的聚合函数,然后将其应用到分组数据上。DepartmentHR 57500.0Pandas 中的agg方法是一个强大的工具,用于执行各种数据聚合操作。

涛哥聊Python 7926

Pandas详解二十五之聚合运算agg

约定: import pandas as pd 聚合运算 在数据分析中,对数据聚合(求和、平均值等)通常是不可避免的。在将数据分组(groupby)后,新手若不知函数 agg() 的情况下,很有可能写出二三十行的for循环只为求每个分组的平均值。在这里,介绍个强大的函数:agg() ,能让你的代码缩减到一行。 创建对象和分组 df1=pd.DataFrame...

yungeisme的博客 1万+

pandas学习笔记—agg()函数详解

目录1、agg()函数定义2、举例2.1 简单的列或行统计2.2 自定义统计函数2.3 先groupby()再agg() 1、agg()函数定义 agg()函数是聚合函数, DataFrame.agg(func,axis = 0,* args,** kwargs ) @@@func : 实现某种统计功能的函数,如果要不同列用求不同统计量,则用字典{‘行名/列名’,‘函数名’}指定。 2、举例 2.1 简单的列或行统计 import pandas as pd import numpy as np df1=pd

sunmingyang1987的博客 4万+

python中使用agg方法聚合数据

使用agg方法聚合数据 agg,aggregate方法都支持对每个分组应用某函数,包括Python内置函数或自定义函数。同时这两个方法能够也能够直接对DataFrame进行函数应用操作。 在正常使用过程中,agg函数和aggregate函数对DataFrame对象操作时功能几乎完全相同,因此只需要掌握其中一个函数即可。它们的参数说明如下表。 **DataFrame.agg(func, axis=0, *args, **kwargs) DataFrame.aggregate(func, axis=0, *ar

微信公众号(年更选手):数据闲逛人 | Github开源项目:数分/数挖study路线 https://github.com/jc-dian/python_data_analysis 2万+

Pandas中agg聚合函数的使用方法及示例

agg函数可以方便地对数据进行聚合操作并返回结果,提供了丰富的聚合选项,包括常见的统计量和自定义函数。Pandas库提供了agg(aggregate)函数,它可以方便地进行多个聚合操作并返回结果。Pandas中的agg函数可以对一个或多个列进行聚合操作,并返回结果。在示例中,我们通过将多个统计量以列表形式传递给agg函数,同时计算了’Age’列和’Salary’列的均值、中位数和标准差。在示例中,我们通过将多个聚合操作以列表形式传递给agg函数,计算了薪资列的最大值和平均值。二、agg函数的高级用法。

code_program481的博客 527

Groupby_SQL和pandas等效例子

在SQL中使用PARTITION BY与在Pandas中使用groupby().agg()有一定的相似性,因为它们都是用于分组数据并对每组应用某种聚合函数。

2401_83026894的博客 880

AISHELL-2 中文语音数据库

AISHELL-1 is by far the largest open-source speech corpus available for Mandarin speech recognition research. It was released with a baseline system containing solid training and testing pipelines for Mandarin ASR. In AISHELL-2, 1000 hours of cle

AI_SHELL的博客 7889

【Python】Pandas `agg()`聚合函数回顾

系统梳理了一下agg()函数的使用,同时和apply(),transform()做个简单对比。

diegoXie的博客 1323

从NVLINK到EthLink:GPU互联技术演进全解析(含最新行业趋势)

本文深入解析了从NVLINK到EthLink的GPU互联技术演进,重点剖析了Scale-up与Scale-out两种核心范式。文章详细对比了NVLINK、UALINK及革命性的EthLink技术,后者创新性地将以太网改造为支持Load/Store与RDMA双语义的高性能互联网络,旨在打破封闭生态,实现高性能与开放性的统一。最后,文章提供了技术选型指南并展望了未来以以太网为主导、语义融合的行业趋势。

weixin_29204749的博客 179

STM32与AD7606的SPI通信优化:提升高精度数据采集效率

本文深入探讨了STM32与AD7606的SPI通信优化策略,旨在提升高精度数据采集系统的效率与稳定性。文章从硬件连接、电源去耦、PCB布局等基础环节入手,详细解析了软件驱动中SPI模式配置、DMA应用及精准时序控制等关键优化技术,并提出了系统级的性能提升方案,帮助开发者解决高速采样下的数据跳动、效率瓶颈等实际问题。

weixin_29192211的博客 393

groupby().agg()易错点

对比「通过agg聚合后给 DataFrame 赋值新列」和「agg中直接指定新列名」两种方式的差异。下面先修正语法错误,再详细分析两种写法的和。

ranchor666的博客 381

Python爬取网页数据并写入Excel

ChromeDriver下载链接:https://registry.npmmirror.com/binary.html?path=chromedriver/本例是从Excel表从读取数据,运用到网页中进行搜索,再将结果写入Excel表中。这里要先下载与Chrome版本相同的chromedriver(版本要相同!下载好后,将chromedriver路径正确配置在环境变量中。刚才爬了一些数据,分享一下代码。

weixin_68443051的博客 2519

pandas-组操作-拆分-应用-组合(groupby)(二)

1. 使用agg实现一次应用多个函数

qq_14815199的博客 308

RAGFlow核心引擎DeepDoc之PDF解析大起底

本文深入解析RAGFlow中的deepdoc模块,重点介绍了pdf文档解析器的实现细节。deepdoc包含parser(文档解析器)和vision(视觉处理)两大核心功能,其中pdf解析是最复杂的部分。文章详细剖析了PdfParser类的设计架构,包含PlainParser(基础文本提取)、RAGFlowPdfParser(核心处理流水线)和VisionParser(视觉扩展)三个类,它们通过统一的__call__方法返回标准化结果。还具体讲解了初始化过程如何加载OCR引擎、布局识别模型、表格结构识别器等关

yxkong的专栏 2026

《Zephyr OS 入门与实战》第5章:内存管理策略

【代码】《Zephyr OS 入门与实战》第5章:内存管理策略。

2301_79143213的博客 349

别再只用mean和sum了!Pandas agg()函数这5种高阶用法,让数据分析效率翻倍

本文深入探讨Pandas agg()函数的5种高阶用法,帮助数据分析师提升效率。从多维度统计到缺失值处理,这些技巧能减少代码量、缩短报表生成时间,适用于复杂商业场景。特别推荐使用lambda表达式和命名聚合,让分析更灵活、结果更专业。

weixin_30824599的博客 309

手把手教你学simulink(11.6)--Simulink 航空航天场景:基于Simulink的飞机俯仰控制系统的数学模型

自动驾驶系统在航空航天领域具有重要应用,特别是在商业航空、军用航空和无人机等领域。PID控制器因其简单且有效的特性,被广泛应用于飞行控制。Simulink提供了一个强大的平台,用于建模、仿真和分析动态系统,非常适合设计和测试自动驾驶系统的控制器。通过本项目的实施,我们成功设计和仿真了一个用于控制飞机俯仰角的PID控制器。该项目展示了从系统建模、控制器设计、仿真验证到结果分析的完整流程,为PID控制器的设计提供了有价值的参考。希望这个实例能够为你的航空航天项目提供有用的指导。

MHD0815的博客 566

【第7章Pandas实战案例与解析 分组聚合】7.442 精通Pandas:使用agg()自定义分组之后的新列名

在使用agg()进行分组聚合后,可以通过传递字典的方式来为新生成的列指定名称。字典的键是新的列名,值是对应的聚合函数。通过传递字典来自定义新生成的列名。# 自定义新列名处理多级索引的情况。# 设置多级索引# 按多级索引分组并自定义新列名通过本文的学习,我们掌握了如何在Pandas中使用agg()函数进行分组聚合操作,并自定义新生成的列名。这对于数据分析非常有用,可以帮助我们更好地理解和处理数据。

1089

国科大学习资料--计算机网络--历年考题1

国科大学习资料–计算机网络–历年考题1 1、假定有一个通信协议,每个分组都引入100字节的开销用于头和成帧,现在使用这个协议发送1M字节的数据(为方便计算,1M=10^6),然而在传递的过程中有一个字节被破坏了,因而包含该字节的那个分组被丢弃并重传。(1)当数据的分组大小为1000、5000、20000和40000字节时,计算相应(包括开销)的传递字节总数目。(2)计算分组大小的最优值是多少,即分组的大小为何值时总的传输字节数最少。(提示:最优值不是1000、5000、20000和40000字节中的一个)

无名何许人的博客 1182

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【Pandas分组聚合】 groupby()、agg() 方法的使用

Pandas分组聚合

weixin_45760274的博客 5万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

python pandas中的agg函数

python中的agg函数通常用于调用groupby()函数之后,对数据做一些聚合操作,包括sum,min,max以及其他一些聚合函数 如下所示: >>> df = pd.read_excel(r"D:/myExcel/1.xlsx") >>> df A B C 0 bob 12 45 1 millor 15 23 2 ...

weixin_45144170的博客 2万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

pandas 聚合函数agg

今天看到pandas的聚合函数agg,比较陌生,平时的工作中处理数据的时候使用的也比较少,为了加深印象,总结一下使用的方法,其实还是挺好用的。 DataFrame.agg(func,axis = 0,* args,** kwargs) func : 函数,函数名称,函数列表,字典{‘行名/列名’,‘函数名’} 使用指定轴上的一个或多个操作进行聚合。 agg是一个聚合函数,聚合函数操作始终是在轴(默认是列轴,也可设置行轴)上执行,不同于numpy聚合函数(np.sum() //求和;np.pr..

学习python 2万+

agg() 函数,聚合函数

然后,我们使用 .groupby() 函数将数据框按照 购买月 列进行分组,并使用 .agg() 函数将同一个月购买的设备的设备名称合并到一个单元格中。然后,我们使用 .groupby() 函数将数据框按照 购买月 列进行分组,并使用 .agg() 函数将同一个月购买的设备的设备名称和设备编码合并到一个单元格中。使用 Pandas 的 .groupby() 和 .agg() 函数将同一个月购买的设备的设备名称汇总到一个单元格中,并使用 .size() 函数统计每个月购买设备的台数。

Fo*(Bi)的博客 1974

详解Pandas聚合函数agg

func: 用于聚合数据的函数,如max()、mean()、count()等,函数必须满足传入一个DataFrame能正常使用,或传递到DataFrame.apply()中能正常使用。本文介绍的聚合函数为DataFrame.aggregate(),别名DataFrame.agg(),aggregate()和agg()是同一个函数,仅名字不同。在agg()中,可以用列表的方式传入多个函数,会将这些函数在每一列的执行结果聚合到一个DataFrame中,结果DataFrame中的索引为对应的函数名。

金戈鐡馬 4206
上一篇: Python PyQt 程序设置图标
下一篇: Pandas merge()函数介绍
ciky2011
博客等级 码龄15年 70粉丝 122原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值