16-Python Pandas聚合函数

Python Pandas聚合函数

窗口函数可以与聚合函数一起使用,聚合函数指的是对一组数据求总和、最大值、最小值以及平均值的操作。

应用聚合函数

首先让我们创建一个 DataFrame 对象,然后对聚合函数进行应用。

import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(20).reshape(5,4),index = pd.date_range('12/14/2020', periods=5),columns = ['A', 'B', 'C', 'D'])
print (df)
#窗口大小为3,min_periods 最小观测值为1
r = df.rolling(window=3,min_periods=1)
print(r)

输出结果:

             A   B   C   D
2020-12-14   0   1   2   3
2020-12-15   4   5   6   7
2020-12-16   8   9  10  11
2020-12-17  12  13  14  15
2020-12-18  16  17  18  19
Rolling [window=3,min_periods=1,center=False,axis=0,method=single]
1) 对整体聚合

您可以把一个聚合函数传递给 DataFrame,示例如下:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(20).reshape(5,4),index = pd.date_range('12/14/2020', periods=5),columns = ['A', 'B', 'C', 'D'])
print (df)
#窗口大小为3,min_periods 最小观测值为1
r = df.rolling(window=3,min_periods=1)
print(r.aggregate(np.sum))
# 以下方式也可以
# print(r.sum())

输出结果:

             A   B   C   D
2020-12-14   0   1   2   3
2020-12-15   4   5   6   7
2020-12-16   8   9  10  11
2020-12-17  12  13  14  15
2020-12-18  16  17  18  19A     B     C     D
2020-12-14   0.0   1.0   2.0   3.0
2020-12-15   4.0   6.0   8.0  10.0
2020-12-16  12.0  15.0  18.0  21.0
2020-12-17  24.0  27.0  30.0  33.0
2020-12-18  36.0  39.0  42.0  45.0
2) 对任意某一列聚合
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(20).reshape(5,4),index = pd.date_range('12/14/2020', periods=5),columns = ['A', 'B', 'C', 'D'])
print (df)
#窗口大小为3,min_periods 最小观测值为1
r = df.rolling(window=3,min_periods=1)
print(r['B'].aggregate(np.sum))

输出结果:

             A   B   C   D
2020-12-14   0   1   2   3
2020-12-15   4   5   6   7
2020-12-16   8   9  10  11
2020-12-17  12  13  14  15
2020-12-18  16  17  18  19
2020-12-14     1.0
2020-12-15     6.0
2020-12-16    15.0
2020-12-17    27.0
2020-12-18    39.0
Freq: D, Name: B, dtype: float64
3) 对多列数据聚合
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(20).reshape(5,4),index = pd.date_range('12/14/2020', periods=5),columns = ['A', 'B', 'C', 'D'])
print (df)
#窗口大小为3,min_periods 最小观测值为1
r = df.rolling(window=3,min_periods=1)
print(r['B','C'].aggregate(np.sum))

输出结果:

             A   B   C   D
2020-12-14   0   1   2   3
2020-12-15   4   5   6   7
2020-12-16   8   9  10  11
2020-12-17  12  13  14  15
2020-12-18  16  17  18  19B     C
2020-12-14   1.0   2.0
2020-12-15   6.0   8.0
2020-12-16  15.0  18.0
2020-12-17  27.0  30.0
2020-12-18  39.0  42.0
4) 对单列应用多个函数
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(20).reshape(5,4),index = pd.date_range('12/14/2020', periods=5),columns = ['A', 'B', 'C', 'D'])
print (df)
#窗口大小为3,min_periods 最小观测值为1
r = df.rolling(window=3,min_periods=1)
print(r['B'].aggregate([np.sum,np.mean]))

输出结果:

             A   B   C   D
2020-12-14   0   1   2   3
2020-12-15   4   5   6   7
2020-12-16   8   9  10  11
2020-12-17  12  13  14  15
2020-12-18  16  17  18  19sum  mean
2020-12-14   1.0   1.0
2020-12-15   6.0   3.0
2020-12-16  15.0   5.0
2020-12-17  27.0   9.0
2020-12-18  39.0  13.0
5) 对不同列应用多个函数
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(20).reshape(5,4),index = pd.date_range('12/14/2020', periods=5),columns = ['A', 'B', 'C', 'D'])
print (df)
#窗口大小为3,min_periods 最小观测值为1
r = df.rolling(window=3,min_periods=1)
print(r['B','C'].aggregate([np.sum,np.mean]))

输出结果:

             A   B   C   D
2020-12-14   0   1   2   3
2020-12-15   4   5   6   7
2020-12-16   8   9  10  11
2020-12-17  12  13  14  15
2020-12-18  16  17  18  19B           C      sum  mean   sum  mean
2020-12-14   1.0   1.0   2.0   2.0
2020-12-15   6.0   3.0   8.0   4.0
2020-12-16  15.0   5.0  18.0   6.0
2020-12-17  27.0   9.0  30.0  10.0
2020-12-18  39.0  13.0  42.0  14.0
6) 对不同列应用不同函数
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(20).reshape(5,4),index = pd.date_range('12/14/2020', periods=5),columns = ['A', 'B', 'C', 'D'])
print (df)
#窗口大小为3,min_periods 最小观测值为1
r = df.rolling(window=3,min_periods=1)
print(r.aggregate({"B":np.sum,"C":np.mean}))

输出结果:

             A   B   C   D
2020-12-14   0   1   2   3
2020-12-15   4   5   6   7
2020-12-16   8   9  10  11
2020-12-17  12  13  14  15
2020-12-18  16  17  18  19B     C
2020-12-14   1.0   2.0
2020-12-15   6.0   4.0
2020-12-16  15.0   6.0
2020-12-17  27.0  10.0
2020-12-18  39.0  14.0

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

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

相关文章

CSS 背景添加白色小圆点样式

css也是开发过程中不可忽视的技巧 此专栏用来纪录不常见优化页面样式的css代码 效果图: 未添加之前: 代码: background: radial-gradient(circle at 1px 1px, #3d3c3c 2px, transparent 0);background-size: 20px 25px;

【Docker项目实战篇】Docker部署PDF多功能工具Stirling-PDF

【Docker项目实战篇】Docker部署PDF多功能工具Stirling-PDF 前言一、Stirling-PDF介绍1.1 Stirling-PDF简介1.2 Stirling-PDF功能 二、本次实践规划2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四…

鸿蒙如何打包应用程序

总结鸿蒙应用程序包 之前文章详细讲解了关于三种程序包的内容,现在简单总结一下: 1. 总结 首先需要搞清楚鸿蒙项目的模块Module的分类: Module分为“Ability”和“Library”两种类型 HAP HAP: Harmony Ability Package , 叫做鸿蒙Ability包。 “Abil…

【AI大模型】跌倒监控与健康:技术实践及如何改变未来

文章目录 1. **背景与意义**2. **关键技术与方法**2.1 传感器数据融合2.2 深度学习模型2.3 行为模式识别2.4 预测与预防 3. **应用场景**3.1 老年人跌倒预警3.2 康复患者监测3.3 高风险职业防护 4. **实践案例**案例1:某老年社区的跌倒预警系统案例2:康复…

C++ 几何算法 打印图案 1*2*5*6 –3*4(Geometric Algorithms Print the pattern 1*2*5*6 –3*4)

给定整数 N,任务是打印一个倒三角形,其中左半部分由 [1, N*(N1)/2] 范围内的元素组成,右半部分由 [N*(N1)/2 1, N*(N1)] 范围内的元素组成。 例子: 输入: N 3 输出: 1*2*3*10*11*12 4*5*8*9 …

业务模型扩展字段存储

构建业务模型时,通常模型会设置扩展信息,存储上一般使用JSON格式存储到db中。JSON虽然有较好的扩展性,但并没有结构化存储的类型和非空等约束,且强依赖代码中写入/读取时进行序列化/反序列化操作, 当扩展信息结构简单且…

webStorm debug vue项目的两种方案

一、前言 本文将介绍通过webstorm对vue项目进行debugger调试的两种方案。 但是,不管通过那种方案,都无法达到类似后端idea调试的体验,感觉十分难受,不过,比起用console.log还是好一些。如果各位有更好的方案&#xf…

贪心问题(POJ1700/1017/1065)(C++)

一、贪心问题 贪心算法 贪心算法(greedy algorithm),是用计算机来模拟一个「贪心」的人做出决策的过程。这个人十分贪婪,每一步行动总是按某种指标选取最优的操作。而且他目光短浅,总是只看眼前,并不考虑…

nacos漏洞

Alibaba Nacos是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,可以快速实现动态服务发现、服务配置、服务元数据及流量管理…

nginx架构学习

前言 这篇文章主要记录下对nginx架构的学习记录。 架构设计 优秀的模块化设计 高度模块化的设计是Nginx的架构基础。在Nginx中,除了少量的核心代码,其他一切皆 为模块。 在这5种模块中,配置模块与核心模块都是与Nginx框架密切相关的&…

【Python】利用代理IP爬取当当网数据做数据分析

前言 在数字化浪潮的推动下,电商平台已经彻底改变了我们的购物方式。从简单的在线交易到复杂的用户交互,电商平台积累了海量的用户数据。这些数据,如同隐藏在深海中的宝藏,等待着被发掘和利用。通过分析用户的浏览、搜索、购买等行…

华为RH2288H V2服务器,远程端口安装Linux操作系统

1、管理口 每台服务器的管理口不一样的,假如我的管理IP地址为:192.168.111.201 使用网线,将管理口和自己电脑连接起来,自己ip地址设置成和管理ip同一网段。 使用 ie 浏览器,如果是Edge,必须在Internet Exp…

基于局域网下的服务器连接、文件传输以及内网穿透教程 | 服务器连接ssh | 服务器文件传输scp | 内网穿透frp | 研究生入学必备 | 深度学习必备

🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 📌本篇博客分享的是基于局域网下的服务器连接🔗、文件传输以及内网穿透教程,内容非常完备✨,涵盖了在服务器上做深度学…

Mojo — 适用于所有人工智能开发人员的编程语言

Mojo语言是一个由人工智能公司Modular推出的全新编程语言,专为AI开发者设计。Mojo的语法与Python相似,但结合了Python的易用性和C语言的高性能,旨在解锁AI硬件的可编程性和AI模型的可扩展性。 Modular这个公司则是一个非常年轻的新生AI创业公…

观成科技:证券行业加密业务安全风险监测与防御技术研究

摘要:解决证券⾏业加密流量威胁问题、加密流量中的应⽤⻛险问题,对若⼲证券⾏业的实际流量内容进⾏调研分析, 分析了证券⾏业加密流量⾯临的合规性⻛险和加密协议及证书本⾝存在的⻛险、以及可能存在的外部加密流量威 胁,并提出防…

第三方服务提供商的五大风险

亚马逊如何应对网络安全挑战 关键网络安全统计数据和趋势 移动优先世界中安全和隐私策略 当今数字时代网络安全的重要性 用户无法停止犯安全错误的 3 个原因 首席安全官可能过于依赖 EDR/XDR 防御 随着业务流程变得越来越复杂,公司开始转向第三方来提高其提供关…

观察者模式在金融业务中的应用及其框架实现

引言 观察者模式(Observer Pattern)是一种行为设计模式,它定义了一种一对多的依赖关系,使得多个观察者对象同时监听某一个主题对象。当这个主题对象发生变化时,会通知所有观察者对象,使它们能够自动更新。…

Web后端开发之前后端交互

http协议 http ● 超文本传输协议 (HyperText Transfer Protocol)服务器传输超文本到本地浏览器的传送协议 是互联网上应用最为流行的一种网络协议,用于定义客户端浏览器和服务器之间交换数据的过程。 HTTP是一个基于TCP/IP通信协议来传递数据. HTT…

Transformer详解encoder

目录 1. Input Embedding 2. Positional Encoding 3. Multi-Head Attention 4. Add & Norm 5. Feedforward Add & Norm 6.代码展示 (1)layer_norm (2)encoder_layer1 最近刚好梳理了下transformer,今…

文件系统(操作系统实验)

实验内容 (1)在内存中开辟一个虚拟磁盘空间作为文件存储器, 在其上实现一个简单单用户文件系统。 在退出这个文件系统时,应将改虚拟文件系统保存到磁盘上, 以便下次可以将其恢复到内存的虚拟空间中。 (2&…