我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么使用python中分组函数groupby和分组运算函数agg

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么使用python中分组函数groupby和分组运算函数agg

这篇文章主要介绍“怎么使用python中分组函数groupby和分组运算函数agg”,在日常操作中,相信很多人在怎么使用python中分组函数groupby和分组运算函数agg问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用python中分组函数groupby和分组运算函数agg”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

groupby:

首先创建数据:

import pandas as pdimport numpy as npdf = pd.DataFrame({'A': ['a', 'b', 'a', 'c', 'a', 'c', 'b', 'c'],                        'B': [2, 7, 1, 3, 3, 2, 4, 8],                        'C': [100, 87, 96, 130, 105, 87, 96, 155]})dfOut[2]:    A  B    C0  a  2  1001  b  7   872  a  1   963  c  3  1304  a  3  1055  c  2   876  b  4   96

pandas中groupby的基本操作:

按A列进行分组,求B、C两列的均值:

df.groupby('A').mean()Out[6]:           B           CA                      a  2.000000  100.333333b  5.500000   91.500000c  4.333333  124.000000

当然也可以按照多列进行分组,获取其他列的均值:

df.groupby(['A','B']).mean()Out[7]:        CA B     a 1   96  2  100  3  105b 4   96  7   87c 2   87  3  130  8  155

分组后,选择列进行计算:

data=df.groupby('A')data['B'].std()Out[11]: Aa    1.00000b    2.12132c    3.21455Name: B, dtype: float64 #选择B、C两列data['B','C'].mean()Out[12]:           B           CA                      a  2.000000  100.333333b  5.500000   91.500000c  4.333333  124.000000

按A进行分组后,可以对不同的列采用不同的聚合方法(ps:这一点就和hive很相像了)

data.agg({'B':'mean','C':'sum'})    #B列均值,C列汇总Out[14]:      C         BA               a  301  2.000000b  183  5.500000c  372  4.333333

如果按照A进行分组后,对多列采用相同的聚合方法,我们可以借助apply函数:

df.groupby('A').apply(np.mean)Out[25]:           B           CA                      a  2.000000  100.333333b  5.500000   91.500000c  4.333333  124.000000

将某列数据按数据值分成不同范围段进行分组运算

创建数据集:

np.random.seed(0)df = pd.DataFrame({'Age': np.random.randint(20, 70, 100),                         'Sex': np.random.choice(['Male', 'Female'], 100),                         'number_of_foo': np.random.randint(1, 20, 100)})Out[38]:    Age     Sex  number_of_foo0   64  Female             141   67  Female             142   20  Female             123   23    Male             174   23  Female             15

目标:将age字段分成三组,有如下两种方法实现:

#第一种方法:1、bins=4pd.cut(df['Age'], bins=4)0       (56.75, 69.0]1       (56.75, 69.0]2     (19.951, 32.25]3     (19.951, 32.25]4     (19.951, 32.25]... #第二种方法2、bins=[19, 40, 65, np.inf]pd.cut(df['Age'], bins=[19,40,65,np.inf])Out[40]: 0     (40.0, 65.0]1      (65.0, inf]2     (19.0, 40.0]3     (19.0, 40.0]4     (19.0, 40.0] #分组范围结果如下:age_groups = pd.cut(df['Age'], bins=[19,40,65,np.inf])df.groupby(age_groups).mean()Out[43]:                     Age  number_of_fooAge                                   (19.0, 40.0]  29.840000       9.880000(40.0, 65.0]  52.833333       9.452381(65.0, inf]   67.375000       9.250000 #按‘Age'分组范围和性别(sex)进行制作交叉表 pd.crosstab(age_groups, df['Sex'])Out[44]: Sex           Female  MaleAge                       (19.0, 40.0]      22    28(40.0, 65.0]      18    24(65.0, inf]        3     5

agg:

使用groupby按照某列(A)进行分组后,需要对另外一列采用不同的聚合方法:

df.groupby('A')['B'].agg({'mean':np.mean, 'std': np.std}) Out[16]:        std      meanA                   a  1.00000  2.000000b  2.12132  5.500000c  3.21455  4.333333

按照某列进行分组后,对不同的列采用不同的聚合方法:

df.groupby('A').agg({'B':[np.mean,'sum'],'C':['count',np.std]})  #[]中对应的是两种方法 Out[17]:       C                    B      count        std      mean sumA                               a     3   4.509250  2.000000   6b     2   6.363961  5.500000  11c     3  34.394767  4.333333  13

transform:

前面两种方法得到的结果是以A列值为索引的结果,如果使用没有进行groupby分组的index的话,该怎么操作呢?此时就要用到transform函数了。transform(func, args, *kwargs) 方法简化了这个过程,: func 参数应用到所有分组,然后把结果放置到原数组的 index 上:

dfOut[31]:    A  B    C0  a  2  1001  b  7   872  a  1   963  c  3  1304  a  3  1055  c  2   876  b  4   967  c  8  155 df.groupby('A')['B','C'].transform('count')  #注:count函数在计算时,不计算nan值Out[32]:    B  C0  3  31  2  22  3  33  3  34  3  35  3  36  2  27  3  3

从中可以看出:按A列进行分组,对B、C两列进行计数时,B为a的索引有[0,2,4],所以结果列的中[0,2,4]索引的值都为3,相当于广播了。对于C列,同理。

到此,关于“怎么使用python中分组函数groupby和分组运算函数agg”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么使用python中分组函数groupby和分组运算函数agg

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么使用python中分组函数groupby和分组运算函数agg

这篇文章主要介绍“怎么使用python中分组函数groupby和分组运算函数agg”,在日常操作中,相信很多人在怎么使用python中分组函数groupby和分组运算函数agg问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
2023-06-25

怎么使用python groupby函数实现分组后选取最值

这篇文章主要介绍“怎么使用python groupby函数实现分组后选取最值”,在日常操作中,相信很多人在怎么使用python groupby函数实现分组后选取最值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
2023-07-02

Mariadb中聚合函数和分组函数怎么使用

这篇文章主要讲解了“Mariadb中聚合函数和分组函数怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mariadb中聚合函数和分组函数怎么使用”吧!聚合函数当我们需要汇总表中的数据而
2023-06-28

Python数据分析之堆叠数组函数怎么使用

今天小编给大家分享一下Python数据分析之堆叠数组函数怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。numpy 堆
2023-07-05

mysql中分组函数怎么写

mysql 中的分组函数用于将数据集按分组计算聚合值。常用的函数有:sum:计算指定列中值的总和count:计算指定列中非 null 值的数量avg:计算指定列中值的平均值min:计算指定列中的最小值max:计算指定列中的最大值MySQL
mysql中分组函数怎么写
2024-04-29

PHP中array_chunk()函数怎么分割数组

这篇文章主要介绍了PHP中array_chunk()函数怎么分割数组,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python有哪些常用库python常用的库:1.reque
2023-06-14

mysql中分组函数怎么写的

mysql 中的分组函数按指定列分组数据,并对每个组计算聚合值。分组函数包括 count、sum、avg、min 和 max。having 子句可过滤分组结果,保留满足条件的组。分组后,其他列按行分组,having 子句条件应用于分组结果,
mysql中分组函数怎么写的
2024-05-01

Mariadb聚合函数及分组查询怎么使用

这篇文章主要介绍“Mariadb聚合函数及分组查询怎么使用”,在日常操作中,相信很多人在Mariadb聚合函数及分组查询怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mariadb聚合函数及分组查询怎
2023-06-27

PostgreSQL聚合函数的分组排序怎么使用

本篇内容介绍了“PostgreSQL聚合函数的分组排序怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!聚合函数用于汇总的函数。COUN
2023-06-30

PHP 数组分组函数在创建层级结构中的使用

php 数组分组函数可用于创建层级结构,通过将数组元素根据指定键分组,生成具有多个嵌套级别的数组。代码示例使用 array_group_by() 分组数据,然后通过递归函数 createhierarchy() 将其转换为层级结构。该函数遍历
PHP 数组分组函数在创建层级结构中的使用
2024-05-01

怎么在python中使用np.concatenate()函数拼接numpy数组

这期内容当中小编将会给大家带来有关怎么在python中使用np.concatenate()函数拼接numpy数组,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python可以做什么Python是一种编程语
2023-06-14

PHP中怎么使用preg_replace()函数替换数组

这篇文章将为大家详细讲解有关PHP中怎么使用preg_replace()函数替换数组,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。PHP语言的功能非常强大,主要就是靠它强大的函数来作支撑。我
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录