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

news/2024/11/17 0:41:29/文章来源:https://www.cnblogs.com/charles2024/p/18295205

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 函数都能提供有效的解决方案,帮助数据分析师在日常工作中更加高效地处理和分析数据。

参考链接:

  • QQDocs pandas agg
  • Yuque Pandas agg
  • Nowcoder pandas agg
  • Kdocs pandas agg
  • 51CTO pandas agg
  • Gitee pandas agg
  • Developer Weixin pandas agg
  • Leetcode Pandas agg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/741983.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ollama完整教程:本地LLM管理、WebUI对话、Python/Java客户端API应用

Ollama可以非常方便的管理和部署我们本地大语言模型,老牛同学希望通过本文对Ollama进行一次详细介绍,包括本地大模型管理和使用、WebUI对话界面部署、通过Python和Java使用Ollama的API接口等……老牛同学在前面有关大模型应用的文章中,多次使用了Ollama来管理和部署本地大模…

Python爬虫(1-4)-基本概念、六个读取方法、下载(源代码、图片、视频 )、user-agent反爬

Python爬虫 一、爬虫相关概念介绍 1.什么是互联网爬虫 如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的数据解释1:通过一个程序,根据URL进行爬取网页,获取有用信息 解释2:使用程序模…

一条SQL查询语句是如何执行的??

我想来跟你聊聊 MySQL 的基础架构。我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于 MySQL 的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个 ID 字段,在…

2024最新404错误页面单页源码 HTML错误页面代码

简介:2024最新404错误页面单页源码 HTML错误页面代码 点击下载

高仿imtoken钱包源码/获取助记词/获取私钥/自动归集

简介:高仿imtoken钱包/获取助记词/获取私钥/自动归集 带双端,无纯源码 下载源码

LLM大模型: 常用的数据清洗方法总结

LLM的三大要素:算力:算力的本质是拼财力,普通人是无力改变的; 算法/模型结构:目前最流行的还是transformer架构, 各种LLM都是基于transformer改细节,暂时没有用新的框架替代transformer。至于后续manba会不会替代transformer架构,有待观察! 数据:这块是做LLM pre-tra…

docker部署若依开源java项目微服务版

查看容器IDdocker ps 后面以进入mysql容器为例 进入容器sudo docker exec -it 27e /bin/bash 进入成功,由于是mgsql容器,我们可以输入命令操作看一下mysql文件夹,如下看到了我们建的数据库:退出容器回到centosexit

【考研数学】大家喜欢这种用不同颜色标记解题思路的方式嘛?

今天要给大家分享的笔记是:《如何确定行列式展开式中有效项的个数?》,大家喜欢类似下面这样在文章中用不同的文字颜色和背景颜色对计算推导过程中需要注意的不同部分做高亮显示嘛?可以在下方留言哦 >_< 原文:如何确定行列式展开式中有效项的个数? - 荒原之梦 (zhao…

大气热力学(12)——强对流指数之一(能量参数)

从本篇文章开始,都不是我原有手写笔记上的内容,都是全新添加的内容。本篇文章介绍了根据预报员多年经验总结的各种强对流预报指数,希望这部分内容能对你有所帮助。 @目录12.1 对流有效势能(CAPE)12.1.1 CAPE的概念与相关公式12.1.2 CAPE与上升气块的起始高度的关系12.1.3 …

苍穹外卖 - day1

1.项目介绍 业务功能技术选型环境搭建前端 前端部分非重点,直接由平台提供,部署在nginx服务器上。nginx概念反向代理与负载均衡动态监听80端口,将请求转发到目标服务器,若有多个目标服务器,则采取负载均衡策略进行请求的分发(如轮询)接口文档 1. YApi 通过上传json文件或…

2024最新Zibll子比主题V7.7版本源码 开心版 | WordPress主题

简介: 2024最新Zibll子比主题V7.7版本源码 开心版 | WordPress主题 安装教程在压缩包内V7.7更新日志: 新功能新增数字翻页输入页码跳转的功能(注:总页数超过 8 页才会显示) 新增后台批量设置文章阅读量、点赞数、显示布局等文章扩展功能 新增后台批量设置论坛帖子阅读量、置…

成为MySQL DBA后,再看ORACLE数据库(十三、物理备份)

前面总结了ORACLE的逻辑备份,本文来总结以下ORACLE的物理备份。数据库的备份一般分为冷备份和热备份,其中冷备份是指将数据库彻底关闭后进行的一致性备份,由于需要关停数据库所以在实际应用中很少用到冷备份。而热备份是指在数据库运行的同时对数据库进行备份,本文主要总结…