Python DataFrame.groupby()聚合函数,分组级运算

Python中的pandas库提供了DataFrame.groupby()函数,依照指定的分组条件,会把表格按照分组条件进行分组,并在每个分组上进行聚合操作。这个函数的用途非常广泛,一般用于数据的汇总、分析和统计。下面介绍几个使用DataFrame.groupby()的示例来详解这个函数。

1. 基本语法

DataFrame.groupby()函数的基本语法为:DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs)

其中参数说明如下:

  • by: 表示分组的依据列或依据函数,默认为None,表示分组不依赖任何列,即不做分组。by可以是列名(字符串),或者用列表指定多个列名做分组,还可以是函数,函数返回值为分组的依据。例如:df.groupby('category')df.groupby(['category','year'])df.groupby(lambda x:x%2==0)

  • axis:表示按照行(axis=0)或列(axis=1)来分组,默认是0表示按照行分组。

  • level:表示在多层索引的情况下,使用该参数指定分组的索引等级。

  • as_index:表示是否将分组的列设置为新的索引,默认为True表示是,这意味着分组的列不会在结果中出现。

  • sort:表示是否对分组后的结构进行排序,默认是True。设置为False可以提升效率。

  • group_keys:表示是否对结果设置分组名,默认为True。

  • squeeze:表示是否取消单一分组的分组结果直接输出,默认为False,表示不取消。

  • observed:表示是否遵循类别未出现的保留策略,默认为False。

下面通过两个示例来详解DataFrame.groupby()的使用方法

2. 示例一:

假设我们有以下数据集,我们需要按照category列进行分组,并统计每个分组总金额和平均价格:

import pandas as pd

data = {'category': ['fruit', 'fruit', 'vegetable', 'vegetable', 'drink', 'drink'],
        'item': ['apple', 'banana', 'cabbage', 'apple', 'water', 'soda'],
        'price': [2.0, 3.0, 1.5, 2.5, 1.2, 3.2],
        'quantity': [2, 3, 5, 2, 4, 5]}

df=pd.DataFrame(data)
print(df)

运行结果:

    category     item  price  quantity
0      fruit    apple    2.0         2
1      fruit   banana    3.0         3
2  vegetable  cabbage    1.5         5
3  vegetable    apple    2.5         2
4      drink    water    1.2         4
5      drink     soda    3.2         5

接下来,使用groupby()函数按照category分组,并处理总价格(price列求和)和平均价格(price列求平均数):

df_grouped = df.groupby(['category']).agg({'price': [sum, 'mean']})
print(df_grouped)

运行结果:

             price          
               sum      mean
category                    
drink          4.4  2.200000
fruit          5.0  2.500000
vegetable      4.0  2.000000

在这个示例中,我们首先创建了一个包含产品信息的DataFrame,然后用.groupby()函数按照category列进行分组,同时用agg()函数进行合并。由于我们想要计算总和和平均值,所以将这些操作作为agg()参数传递。最后,我们的程序输出每个类别的价格总和和平均价格。

3. 示例二:

接下来,让我们看一个更复杂的示例。我们将使用鸢尾花(iris)数据集,其中包含多个测量值,包括花瓣大小、花萼大小、花瓣宽度、花萼宽度等。在这个示例中,我们将使用.groupby()函数对鸢尾花数据进行汇总。

import seaborn as sns

iris = sns.load_dataset('iris')      # 使用seaborn中自带的鸢尾花数据集
print(iris.head())                   # 输出数据前5行

运行结果:

   sepal_length  sepal_width  petal_length  petal_width species
0           5.1          3.5           1.4          0.2  setosa
1           4.9          3.0           1.4          0.2  setosa
2           4.7          3.2           1.3          0.2  setosa
3           4.6          3.1           1.5          0.2  setosa
4           5.0          3.6           1.4          0.2  setosa

现在,我们使用.groupby()函数对数据进行,按照' species '列为键值进行分组,并使用.describe()函数传递给.agg()函数来获取分组结果的各种描述性统计:

iris_grouped = iris.groupby('species').agg(['mean', 'std'])
print(iris_grouped)

运行结果:

            sepal_length           sepal_width  ... petal_length petal_width          
                    mean       std        mean  ...          std        mean       std
species                                        ...                                    
setosa           5.0060  0.352490      3.4280  ...     0.173511      0.2460  0.105386
versicolor       5.9360  0.516171      2.7700  ...     0.469911      1.3260  0.197753
virginica        6.5875  0.635880      2.9740  ...     0.551895      2.0260  0.274650

在这个示例中,我们首先使用seaborn中自带的iris数据集,并使用.head()函数输出前五行数据。然后,我们按照species列进行分组,用.agg()函数传递.describe()函数来获取分组结果的各种描述性统计(均值、标准差等)。

4. 总结

在本文中,我们详解了Python DataFrame.groupby()函数的使用,包括基本的语法格式以及如何使用函数处理多个数据集。这个函数非常强大,能够处理各种不同的复杂数据集和分析工作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python DataFrame.groupby()聚合函数,分组级运算 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • pyhton学习与数据挖掘self原理及应用分析

    Python学习与数据挖掘self原理及应用分析 一、self原理 在 Python 中,self 是一个表示对象本身的参数,用来引用对象的属性和方法。当我们创建一个类的实例时,这个实例就会作为 self 参数传递给类的方法。 例如,我们定义一个名为 Person 的类,它有一个属性为 name 和一个方法为 say_hello: class Person:…

    云计算 2023年5月18日
    00
  • 阿里发布第三季度财报:云计算业务亮眼 营收增速128%

    阿里发布第三季度财报:云计算业务亮眼 营收增速128% 完整攻略 1. 背景 阿里巴巴集团于2023年1月30日发布了2022财年第三季度财报。财报显示,阿里云计算业务表现亮眼,营收增速达到128%。 2. 阿里云计算业务的发展 阿里云计算业务是阿里巴巴集团的核心业务之一,自2010年推出以来,一直保持着高速发展的势头。截至2022年12月31日,阿里云已经…

    云计算 2023年5月16日
    00
  • Python实现的大数据分析操作系统日志功能示例

    安装Python相关库和工具 首先,我们需要安装Python及其相关的数据分析库和工具。本次示例中,我们需要的是pandas、numpy、matplotlib和seaborn这些库。如果你之前没有安装过这些库,可以采用以下命令进行安装: pip install pandas numpy matplotlib seaborn 加载日志数据 我们下载了一个名为”…

    云计算 2023年5月18日
    00
  • 接口数据安全保证的10种方式

    下面是关于“接口数据安全保证的10种方式”的完整攻略,包含两个示例说明。 简介 在Web应用程序中,接口数据安全是非常重要的。在本攻略中,我们将介绍10种保证接口数据安全的方式,并提供两个示例说明。 10种方式 以下是10种保证接口数据安全的方式: 使用HTTPS协议。 对接口进行身份验证。 对接口进行访问控制。 对接口进行数据加密。 对接口进行数据签名。 …

    云计算 2023年5月16日
    00
  • python实现zabbix发送短信脚本

    为了实现Zabbix发送短信脚本,我们需要完成以下步骤: 步骤一:获取短信接口的开发文档 首先,我们需要去短信接口官网获取该接口的开发文档,以了解如何使用该接口发送短信。文档中通常包含接口的API地址、参数及返回值等重要信息。根据开发文档,我们可以了解到如何调用该接口以及需要传递哪些参数。 步骤二:安装必要的Python包 为了通过Python发送HTTP请…

    云计算 2023年5月17日
    00
  • 基于Python实现个人手机定位分析

    当尝试使用Python实现手机定位分析时,可遵循以下步骤: 步骤一:获取数据 首先,需要搜集用户手机的位置数据。最可能的方式是从WiFi和蜂窝数据中获取。可通过以下资源来完成此任务: GeoLife GPS Trajectories dataset (微软提供的免费GPS路线数据集,其中包含超过3万个用户在中国大陆的GPS行程)。 open WiFi 和 o…

    云计算 2023年5月18日
    00
  • AMS 新闻视频广告的云原生容器化之路

    作者 卓晓光,腾讯广告高级开发工程师,负责新闻视频广告整体后台架构设计,有十余年高性能高可用海量后台服务开发和实践经验。目前正带领团队完成云原生技术栈的全面转型。 吴文祺,腾讯广告开发工程师,负责新闻视频广告流量变现相关后台开发工作,熟悉云原生架构在生产实践中的应用,拥有多年高性能高可用后台服务开发经验。目前正推动团队积极拥抱云原生。 陈宏钊,腾讯广告高级开…

    2023年4月9日
    00
  • 物联网和云计算的对比融合

      物联网和云计算的对比融合   云计算与物联网的结合是互联网络发展的必然趋势,它将引导互联网和通信产业的发展,并将在数年内形成一定的产业规模。   一、物联网与云计算的对比   物联网的英文名称叫“The Internet of things”,简单地说,就是“物与物相联而形成的一个彼此互相通信的网络”。其中包含两层含义:它是基于于互联网基础上的一个网络;…

    2023年4月10日
    00
合作推广
合作推广
分享本页
返回顶部