首页 > 其他分享 >pandas agg函数的详细介绍与应用

pandas agg函数的详细介绍与应用

时间:2024-07-10 23:41:24浏览次数:9  
标签:函数 示例 agg DataFrame df result pd pandas

pandas agg函数的详细介绍与应用

参考:pandas agg

Pandas 是一个强大的 Python 数据处理库,提供了广泛的方法来进行数据分析。其中,agg 函数是一个非常有用的工具,它允许用户对数据进行多种聚合操作,可以极大地简化数据处理过程。本文将详细介绍 agg 函数的使用方法,并通过多个示例展示其在实际数据处理中的应用。

1. agg函数简介

agg 函数(也称为聚合函数)是 pandas 中 DataFrame 和 Series 对象的一个方法,用于对数据集合进行一系列的聚合操作。这些操作可以是统计总结,如求和、平均值、最大值、最小值等。agg 函数的灵活性在于它可以接受多种输入格式,如字符串、函数或者函数列表,并且可以同时对数据应用多个聚合操作。

2. agg函数的基本用法

示例代码 1: 单个聚合操作

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

# 对列 A 应用 sum 聚合函数
result = df['A'].agg('sum')
print(result)

Output:

示例代码 2: 多个聚合操作

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

# 对列 A 应用多个聚合函数
result = df['A'].agg(['sum', 'mean'])
print(result)

Output:

示例代码 3: 对整个 DataFrame 应用聚合

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

# 对整个 DataFrame 应用 sum 聚合函数
result = df.agg('sum')
print(result)

Output:

示例代码 4: 对 DataFrame 应用多个聚合函数

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

# 对整个 DataFrame 应用多个聚合函数
result = df.agg(['sum', 'mean'])
print(result)

Output:

示例代码 5: 对不同列应用不同的聚合函数

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

# 对不同列应用不同的聚合函数
result = df.agg({'A': 'sum', 'B': 'mean'})
print(result)

Output:

3. 使用自定义函数进行聚合

示例代码 6: 使用自定义函数进行聚合

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

# 定义一个自定义聚合函数
def my_custom_function(x):
    return x.max() - x.min()

# 应用自定义聚合函数
result = df.agg(my_custom_function)
print(result)

Output:

示例代码 7: 对特定列使用自定义函数进行聚合

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

# 应用自定义聚合函数到特定列
result = df['A'].agg(my_custom_function)
print(result)

4. 在 groupby 操作中使用 agg

示例代码 8: 在 groupby 中使用单个聚合函数

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'Key': ['A', 'B', 'A', 'B', 'A', 'B'],
    'Value': [10, 20, 30, 40, 50, 60]
})

# 使用 groupby 和 agg
grouped = df.groupby('Key')
result = grouped.agg('sum')
print(result)

Output:

示例代码 9: 在 groupby 中使用多个聚合函数

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'Key': ['A', 'B', 'A', 'B', 'A', 'B'],
    'Value': [10, 20, 30, 40, 50, 60]
})

# 使用 groupby 和多个聚合函数
grouped = df.groupby('Key')
result = grouped.agg(['sum', 'mean'])
print(result)

Output:

示例代码 10: 在 groupby 中对不同列使用不同的聚合函数

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'Key': ['A', 'B', 'A', 'B', 'A', 'B'],
    'Value1': [10, 20, 30, 40, 50, 60],
    'Value2': [100, 200, 300, 400, 500, 600]
})

# 使用 groupby 和对不同列使用不同的聚合函数
grouped = df.groupby('Key')
result = grouped.agg({'Value1': 'sum', 'Value2': 'mean'})
print(result)

Output:

5. 结合使用 agg 和其他 pandas 功能

示例代码 11: 结合使用 agg 和 filter

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': [5, 4, 3, 2, 1]
})

# 使用 filter 和 agg
filtered = df[df['A'] > 2]
result = filtered.agg('sum')
print(result)

Output:

示例代码 12: 结合使用 agg 和 apply

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': [5, 4, 3, 2, 1]
})

# 使用 apply 和 agg
result = df.apply(lambda x: x * 2).agg('sum')
print(result)

Output:

示例代码 13: 结合使用 agg 和 sort_values

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'A': [5, 3, 1, 4, 2],
    'B': [1, 2, 3, 4, 5]
})

# 使用 agg 计算总和后排序
result = df.agg('sum').sort_values(ascending=False)
print(result)

Output:

示例代码 14: 使用 agg 进行条件聚合

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'A': [10, 20, 30, 40, 50],
    'B': [100, 200, 300, 400, 500]
})

# 定义条件聚合函数
def custom_agg(x):
    return x[x > 25].sum()

# 应用自定义聚合函数
result = df['A'].agg(custom_agg)
print(result)

Output:

示例代码 15: 使用 agg 和 rename 结合改变结果列名

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': [5, 4, 3, 2, 1]
})

# 使用 agg 计算总和并重命名列
result = df.agg({'A': 'sum', 'B': 'sum'}).rename({'A': 'Total_A', 'B': 'Total_B'})
print(result)

Output:

示例代码 16: 使用 agg 结合 lambda 函数进行复杂聚合

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'A': [10, 20, 30, 40, 50],
    'B': [100, 200, 300, 400, 500]
})

# 使用 lambda 函数进行聚合
result = df.agg(lambda x: (x.max() - x.min()) / x.mean())
print(result)

Output:

示例代码 17: 在 groupby 后使用 agg 应用多个自定义函数

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'Key': ['A', 'B', 'A', 'B', 'A', 'B'],
    'Value': [10, 20, 30, 40, 50, 60]
})

# 定义多个自定义聚合函数
def range_func(x):
    return x.max() - x.min()

def average_func(x):
    return x.mean()

# 使用 groupby 和多个自定义聚合函数
grouped = df.groupby('Key')
result = grouped.agg([range_func, average_func])
print(result)

Output:

示例代码 18: 使用 agg 结合 numpy 函数

import pandas as pd
import numpy as np

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': [5, 4, 3, 2, 1]
})

# 使用 numpy 函数进行聚合
result = df.agg(np.sum)
print(result)

示例代码 19: 使用 agg 进行时间序列数据的聚合

import pandas as pd

# 创建一个时间序列示例 DataFrame
df = pd.DataFrame({
    'Date': pd.date_range(start='20230101', periods=5),
    'Value': [1, 2, 3, 4, 5]
})

# 设置日期为索引
df.set_index('Date', inplace=True)

# 使用 resample 和 agg 进行时间序列聚合
result = df.resample('M').agg('sum')
print(result)

示例代码 20: 结合使用 agg 和 pivot_table

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'Category': ['A', 'A', 'B', 'B', 'C', 'C'],
    'Value': [10, 15, 10, 20, 30, 25]
})

# 使用 pivot_table 和 agg 进行数据透视和聚合
pivot_result = df.pivot_table(index='Category', values='Value', aggfunc='sum')
print(pivot_result)

Output:

通过这些示例,我们可以看到 agg 函数在处理各种数据聚合需求时的强大能力和灵活性。无论是简单的总结统计还是复杂的自定义聚合,agg 函数都能提供有效的解决方案,帮助数据分析师在日常工作中更加高效地处理和分析数据。

参考链接:

标签:函数,示例,agg,DataFrame,df,result,pd,pandas
From: https://www.cnblogs.com/charles2024/p/18295205

相关文章

  • C++函数模板学习
    函数模板是C++中的一个强大特性,允许编写通用函数来处理不同的数据类型。学习函数模板有助于理解泛型编程的概念,提高代码的可重用性和可维护性。以下是一些学习函数模板时可以关注的方面:1.模板的基本概念模板定义:了解如何定义模板函数和模板类。模板参数:掌握模板参数的使......
  • 30个Excel特殊函数公式的应用实例
    在Excel中,存在大量的特殊函数,这些函数能够处理各种复杂的数据分析和处理任务。以下是根据Excel的常用和特殊函数,列举的30个应用实例: 1.条件判断类 IF函数:根据条件返回不同的值。例如,=IF(A1>60,"及格","不及格"),用于判断成绩是否及格。 IFS函数(较新版本的Excel中提......
  • 一文掌握ReLU激活函数:深度学习中不可或缺的神器
    在深度学习的领域中,激活函数扮演着至关重要的角色,它们决定着一个神经网络节点是否应该被激活,帮助模型理解数据中复杂和非线性的关系。今天,我们将深入探讨最受欢迎的激活函数之一——ReLU(RectifiedLinearUnit)函数,揭示其为何成为许多深度学习模型的首选。1.ReLU激活函数......
  • 冒泡排序---qsort函数
    1.一般冒泡排序的方法首先来看一般的冒泡排序的写法,这种方法只能排序整型类型的数据代码如下:voidbubble_sort(intarr[],intsz){ inti=0; for(i=0;i<sz-1;i++) //排序的次数是sz-1次 { intj=0; for(j=0;j<sz-1-i;j++) //每一次排序过......
  • Python教程:Pandas数据转换编码的10种方式
    1.构建测试数据集importpandasaspdimportnumpyasnpdf=pd.DataFrame({'Sex':['M','F','M','M','M','F','M','F','F','F'],'Cou......
  • Perl中的切分艺术:深入探索split函数的神秘力量
    ......
  • 解析Count函数
    #count(*),count(主键),count(字段)和count(1)有什么区别?哪个性能最好?绝对不是count(*)最慢!哪种count性能最好?我先直接说结论:要弄明白这个,我们得要深入count的原理,以下内容基于常用的innodb存储引擎来说明。count()是什么?count()是一个聚合函数,函数的参数不......
  • 【面试数据岗必知必会——sql中的行转列、列转行与json函数】
    面试数据岗必知必会——SQL中的行转列、列转行与JSON函数导言:在数据科学和数据分析领域,SQL(StructuredQueryLanguage)是处理和管理关系型数据库的标准语言。掌握SQL的高级技巧,如行转列(Pivot)、列转行(Unpivot)以及JSON函数,能显著提升你在面试中的竞争力,并在实际工作中更加......
  • 移植stm32库函数应对不同形式或者不同的时钟源
    移植stm32库函数应对不同形式或者不同的时钟源如果是stm32F407ZET6,晶振是8MHZ,时钟是168MHz修改system_stm32f4xx.c的316行,需要把PLL_M的值从25修改为8修改stm32f4xx.h的123行,需要把宏HSE_VALUE的值从25修改为8MCU主频的计算=(HSE_VALUE/PLL_M*PLL_N)/PL......
  • sqlsever常用函数
    1.CHARINDEXCHARINDEX(expressionToFind,expressionToSearch[,start_location])参数expressionToFind:要查找的字符串expressionToSearch:要再其中查找的字符串start_location(可选):开始查找的位置(从1开始计数)。默认为1返回值找到的子字符串的起始位置,如果未找到则为0例子s......