详解 Pandas 的窗口函数

Pandas 中常用的窗口函数有滑动窗口 rolling() 和扩张窗口 expanding(),功能主要是对数据进行滚动计算、滑动统计等操作。

一、滑动窗口 rolling

固定窗口大小,进行滑动计算

1. 数据准备

se = pd.Series(data=[100, 110, 120, 130, 110, 140, 150, 80, 110, 130],index=["2019-01-01", "2019-01-02", "2019-01-03", "2019-01-04", "2019-01-05", "2019-01-06", "2019-01-07","2019-01-08", "2019-01-09", "2019-01-10"])print(se)
2019-01-01    100
2019-01-02    110
2019-01-03    120
2019-01-04    130
2019-01-05    110
2019-01-06    140
2019-01-07    150
2019-01-08     80
2019-01-09    110
2019-01-10    130

2. 方法声明

def rolling(self,window: int | dt.timedelta | str | BaseOffset | BaseIndexer, # 窗口大小min_periods: int | None = None, # 每个窗口内最少包含的观测值的数量,如果小于这个值的窗口,则结果为 NAcenter: bool_t = False, # 是否把当前行数据设为窗口居中位置,默认是窗口结束位置win_type: str | None = None,on: str | None = None, # 指定 DataFrame 中在窗口中观测的列axis: Axis | lib.NoDefault = lib.no_default, # 指定按行或按列进行计算closed: IntervalClosedType | None = None,step: int | None = None, # 步长method: str = "single",) -> Window | Rolling

3. 基本使用

# 统计前 3 天的累计值(包含当天)
w = se.rolling(window=3).sum()
print(w)
2019-01-01      NaN
2019-01-02      NaN
2019-01-03    330.0
2019-01-04    360.0
2019-01-05    360.0
2019-01-06    380.0
2019-01-07    400.0
2019-01-08    370.0
2019-01-09    340.0
2019-01-10    320.0
# 统计前3天的累计值(包含当天),不足 3 天按实际统计
w2 = se.rolling(window=3, min_periods=1).sum()print(w2)
2019-01-01    100.0
2019-01-02    210.0
2019-01-03    330.0
2019-01-04    360.0
2019-01-05    360.0
2019-01-06    380.0
2019-01-07    400.0
2019-01-08    370.0
2019-01-09    340.0
2019-01-10    320.0
# 统计每3天的累计值(当天的前一天、当天、当天的后一天)
w3 = se.rolling(window=3, center=True).sum()
print(w3)
2019-01-01      NaN
2019-01-02    330.0
2019-01-03    360.0
2019-01-04    360.0
2019-01-05    380.0
2019-01-06    400.0
2019-01-07    370.0
2019-01-08    340.0
2019-01-09    320.0
2019-01-10      NaN

二、扩张窗口 expanding

只设置最小的观测值数量,不固定窗口大小,实现累计计算

1. 数据准备

1. 数据准备

se = pd.Series(data=[100, 110, 120, 130, 110, 140, 150, 80, 110, 130],index=["2019-01-01", "2019-01-02", "2019-01-03", "2019-01-04", "2019-01-05", "2019-01-06", "2019-01-07","2019-01-08", "2019-01-09", "2019-01-10"])print(se)
2019-01-01    100
2019-01-02    110
2019-01-03    120
2019-01-04    130
2019-01-05    110
2019-01-06    140
2019-01-07    150
2019-01-08     80
2019-01-09    110
2019-01-10    130

2. 方法声明

def expanding(self,min_periods: int = 1, # 设置最少包含的观测值的数量,如果小于这个值的窗口,则结果为 NAaxis: Axis | lib.NoDefault = lib.no_default, # 指定按行或按列进行计算method: Literal["single", "table"] = "single",) -> Expanding

3. 基本使用

# 统计累积到当天的总值
w = se.expanding(min_periods=1).sum() # 类似 cumsum() 函数的累计求和
print(w)
2019-01-01     100.0
2019-01-02     210.0
2019-01-03     330.0
2019-01-04     460.0
2019-01-05     570.0
2019-01-06     710.0
2019-01-07     860.0
2019-01-08     940.0
2019-01-09    1050.0
2019-01-10    1180.0
# 统计累积到当天的总值,最少有 2 天
w2 = se.expanding(min_periods=2).sum()
print(w2)
2019-01-01       NaN
2019-01-02     210.0
2019-01-03     330.0
2019-01-04     460.0
2019-01-05     570.0
2019-01-06     710.0
2019-01-07     860.0
2019-01-08     940.0
2019-01-09    1050.0
2019-01-10    1180.0

三、窗口中支持的聚合函数

聚合函数说明
sum()值的总和
count()非空观测值数量
mean()值的平均值
median()值的中位数
min()最小值
max()最大值
std()值的标准差
var()值的方差
skew()样品偏斜度(三阶矩)
kurt()样品峰度(四阶矩)
quantile()样本分位数(百分位上的值)
cov()无偏协方差(二元)
corr()相关性(二进制)
agg()通用聚合
apply()自定义函数

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

科研绘图系列:R语言组合多个图形

文章目录 介绍加载R包画图介绍 通过patchworkR包组合多个ggplot数据图形对象。 加载R包 library(ggplot2) library(patchwork)画图 画图theme_set(theme_bw() +theme(

全面介绍 CSS 属性值计算 —— 掌握它就了解大部分 CSS

CSS 的核心之一就在此,直接影响我们开发中的调试和布局!!! 举个 🌰:页面上存在一个 h1 元素,不设置任何样式,但是当我们点开 computed 查看,几乎 MDN 上的 CSS 属性都存…

2206. 将数组划分成相等数对(排序/哈希)

目录 一:题目: 二:代码: 三:结果: 一:题目: 给你一个整数数组 nums ,它包含 2 * n 个整数。 你需要将 nums 划分成 n 个数对,满足: 每个元素…

Python画笔案例-058 绘制单击画酷炫彩盘

1、绘制单击画酷炫彩盘 通过 python 的turtle 库绘制 单击画酷炫彩盘,如下图: 2、实现代码 绘制单击画酷炫彩盘,以下为实现代码: """单击画酷炫彩盘.py"""from turtle import Turtle # 导入海龟类 from random import randint…

经典大语言模型解读(3):参数量更大、泛化性能更强的生成式模型GPT-2

概述 在GPT-1的基础上,OpenAI提出了包含15亿参数(GPT-1参数量的10倍以上)的GPT-2模型。该模型在一个更大规模的文本数据集WebText上进行预训练。与GPT-1依赖特定任务上的有监督微调来提升性能不同,GPT-2具备更强的零样本&#xf…

「OC」引用计数(一)

iOS学习 前言自动引用计数引用计数引用计数的思考方式自己生成的对象,自己持有非自己生成的对象,自己也能持有不再需要自己持有的对象时释放无法释放非自己持有的对象 总结 前言 在学习oc时对引用计数略有了解,现在进行系统的学习总结。 自动…

Spring AOP - 配置文件方式实现

目录 AOP基础概念 示例1:模拟在com.text包及子包项下所有类名称以ServiceImpl结尾的类的所有方法执行前、执行后、执行正常后返回值、执行过程中出异常的情况 示例2:统计com.text包及子包项下所有类名称以DaoImpl结尾的类的所有方法执行时长情况 AOP基…

英伟达开源 NVLM 1.0 引领多模态 AI 变革

新闻 NVLM 1.0 是由英伟达(Nvidia)最新推出的一系列前沿级别的多模态大型语言模型(MLLM),这些模型在视觉-语言任务上取得了与领先专有模型(例如 GPT-4o)和开放访问模型(例如 Llama 3…

文件上传、重定向、Gin路由

文件上传 单个文件上传 index.html 文件上传前端页面代码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><title>index</title> </head> <body> <form action"/upload" method"post"…

【WPF】桌面程序开发之窗口的用户控件详解

使用Visual Studio开发工具&#xff0c;我们可以编写在Windows系统上运行的桌面应用程序。其中&#xff0c;WPF&#xff08;Windows Presentation Foundation&#xff09;项目是一种常见的选择。然而&#xff0c;对于初学者来说&#xff0c;WPF项目中xaml页面的布局设计可能是一…

基础算法(4)——前缀和

1. 前缀和 题目描述&#xff1a; 解法一&#xff1a;暴力解法 直接模拟实现题目流程即可 时间复杂度为&#xff0c;根据题目给出的条件&#xff0c;肯定会超时 解法二&#xff1a;前缀和&#xff08;适用题型&#xff1a;快速 求出数组中某一个 连续区间 的 和&#xff09;…

车路云一体化大模型数据治理方案

车路云一体化大模型数据治理解决方案 "杭州市发改委已批复了杭州交通投资集团的智能网联汽车“车路云一体化”试点项目。这一批复体现了其对该项目可行性研究报告的肯定&#xff0c;预示着杭州市在智能驾驶领域的进一步发展。" 2024年6月18日&#xff0c;第十一届国…

WGS1984快速度确定平面坐标系UTM分带(快速套表、公式计算、软件范围判定)

之前我们介绍了坐标系3带6带快速确定带号及中央经线&#xff08;快速套表、公式计算、软件范围判定&#xff09;就&#xff0c;讲的是CGCS2000 高斯克吕格的投影坐标系。 那还有我们经常用的WGS1984的平面坐标系一般用什么投影呢? 对于全球全国的比如在线地图使用&#xff1a…

面向未来的算力网络连接发展趋势分析

面向未来的算力网络连接发展特点与实践 AI算力研究&#xff1a;英伟达B200再创算力奇迹&#xff0c;液冷、光模块持续革新 英伟达隆重宣布新一代Blackwell架构&#xff0c;华为对GPU算力需求高达百万片。 英伟达发布的GB200 NVL72 机架级系统内部包括 72 个 Blackwell GPU 和…

【排序算法】插入排序_直接插入排序、希尔排序

文章目录 直接插入排序直接插入排序的基本思想直接插入排序的过程插入排序算法的C代码举例分析插入排序的复杂度分析插入排序的优点 希尔排序希尔排序&#xff08;Shell Sort&#xff09;详解希尔排序的步骤&#xff1a;希尔排序的过程示例&#xff1a;希尔排序的C语言实现举例…

S3C2440定时器

ee一、构造 二、设置相关位 1、MPLLCON寄存器&#xff08;配置MPLL寄存器&#xff0c;进行倍频&#xff09; 根据下列表格的想要输出的频率进行选择&#xff0c;选择完毕之后&#xff0c;对该寄存器进行设置 2、时钟分频控制&#xff08;CLKDIVN&#xff09;寄存器 根据不…

CSP-J 2024 入门组初赛第一轮初赛试题及答案解析

CSP-J 2024 入门组初赛第一轮初赛试题及答案解析 一、 单项选择题&#xff08;共15题&#xff0c;每题2分&#xff0c;共计30分&#xff1a;每题有且仅有一个正确选项&#xff09; 1 32 位 int 类型的存储范围是&#xff08; &#xff09; A -2147483647 ~ 2147483647 B -21…

第十四章:html和css做一个心在跳动,为你而动的表白动画

💖 让心跳加速,传递爱意 💖 在这个特别的时刻,让爱在跳动中绽放!🌟 无论是初次相遇的心动,还是陪伴多年的默契,我们的心总在为彼此跳动。就像这颗炙热的爱心,随着每一次的跳动,传递着满满的温暖与期待。 在这个浪漫的季节,让我们一同感受爱的律动!无论你是在…

【深度学习】(4)--卷积神经网络

文章目录 卷积神经网络一、画面不变性二、图像识别三、卷积网络结构1. 原理2. 卷积层3. 池化层4. 全连接层 四、感受野 总结 卷积神经网络 卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;简称CNN&#xff09;是一种深度学习模型&#xff0c;特别适用于处理…

基于SpringBoot+Vue+MySQL的校园一卡通系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着现代社会的快速发展&#xff0c;校园一卡通已成为大学生活中不可或缺的一部分。它不仅承载着校园消费的功能&#xff0c;还集成了学生身份证明、图书馆借阅、门禁系统等多种服务。然而&#xff0c;传统的一卡通管理系统往往…