Pandas.DataFrame.cumprod() 累积乘积 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本: 本文基于 pandas2.2.0 编写。

关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。

传送门: Pandas API参考目录

传送门: Pandas 版本更新及新特性

传送门: Pandas 由浅入深系列教程

本节目录

  • Pandas.DataFrame.cumprod()
    • 计算公式:
    • 语法:
    • 返回值:
    • 参数说明:
      • axis 指定计算方向(行或列)
      • skipna 忽略缺失值
      • *args,**kwargs
    • 相关方法:
    • 示例:
      • 例1:如果是 `Series` 始终保持 `axis=0`,即 `Series` 所有元素的累积乘积。
      • 例2、计算每列累积乘积
      • 例3、计算每行累积乘积
      • 例4、默认会跳过缺失值,以缺失值上面的最近有效值,进行后面的计算
      • 例5、如果不忽略缺失值,后面所有的结果,将都是缺失值。

Pandas.DataFrame.cumprod()

Pandas.DataFrame.cumprod 方法用于返回行或列每一个元素与前面所有元素的累积乘积

计算公式:

  • 累积乘积计算公式:

    m i = min ⁡ ( x 1 , x 2 , … , x i ) m_i = \min(x_1, x_2, \ldots, x_i) mi=min(x1,x2,,xi)

    m i m_i mi 表示当前位置的累积乘积, min ⁡ ( x 1 , x 2 , … , x i ) \min(x_1, x_2, \ldots, x_i) min(x1,x2,,xi) 表示从起始位置到当前位置的所有元素的乘积。

语法:

DataFrame.cumprod(axis=None, skipna=True, *args, **kwargs)

返回值:

  • Series or DataFrame

参数说明:

axis 指定计算方向(行或列)

  • axis : {0 or ‘index’, 1 or ‘columns’}, default 0

    axis 参数,用于指定计算方向,即按行计算或按列计算累积乘积:

    • 如果是 Series 此参数无效,将始终保持 axis=0,即计算整列的累积乘积。例1
    • 如果是 DataFrame 默认为 axis=0 即计算每一列的累积乘积。并有以下参值可选:
      • 0 or ‘index’: 计算每列的累积乘积。 例2
      • 1 or ‘columns’: 计算每行的累积乘积。例3

skipna 忽略缺失值

  • skipna : bool, default True >

    skipna 参数,用于指定求累积乘积的时候是否忽略缺失值,默认 skipna=True 表示忽略缺失值:

    • True: 忽略缺失值。当遇到缺失值,会跳过缺失值,以缺失值上面的最近有效值继续后面的计算。 例4
    • False: 不忽略缺失。但是后面的所有结果将都是缺失值。例5

*args,**kwargs

  • 为了保持与 Numpy 的兼容性而保留的参数,一般不需要传递任何内容。

相关方法:

➡️ 相关方法


  • Series.cumprod

    Series 累计乘积

  • DataFrame.prod

    乘积

  • DataFrame.cummax

    累积最大值

  • DataFrame.cummin

    累积最小值

  • DataFrame.cumsum

    累积和

示例:

测试文件下载:

本文所涉及的测试文件,如有需要,可在文章顶部的绑定资源处下载。

若发现文件无法下载,应该是资源包有内容更新,正在审核,请稍后再试。或站内私信作者索要。

测试文件下载位置.png

测试文件下载位置

例1:如果是 Series 始终保持 axis=0,即 Series 所有元素的累积乘积。

import numpy as np
import pandas as pd

s = pd.Series([24.0, np.nan, 21.0, 33, 26], name="age")
s.cumprod()
0        24.0
1         NaN
2       504.0
3     16632.0
4    432432.0
Name: age, dtype: float64

例2、计算每列累积乘积

import numpy as np
import pandas as pd

df = pd.DataFrame([[2.0, 1.0], [3.0, np.nan], [1.0, 0.0]], columns=list("AB"))

df.cumprod()
AB
02.01.0
16.0NaN
26.00.0

例3、计算每行累积乘积

import numpy as np
import pandas as pd

df = pd.DataFrame(
    [[2.0, 1.0, 3.0], [3.0, np.nan, 5.0], [1.0, 1.0, 1.0], [1.0, 0.0, 2.0]],
    columns=list("ABC"),
)

df.cumprod(axis=1)
ABC
02.02.06.0
13.0NaN15.0
21.01.01.0
31.00.00.0

例4、默认会跳过缺失值,以缺失值上面的最近有效值,进行后面的计算

import numpy as np
import pandas as pd

df = pd.DataFrame(
    [[2.0, 1.0], [3.0, np.nan], [1.0, 1.0], [1.0, 0.0]], columns=list("AB")
)

df.cumprod()
AB
02.01.0
16.0NaN
26.01.0
36.00.0

例5、如果不忽略缺失值,后面所有的结果,将都是缺失值。

import numpy as np
import pandas as pd

df = pd.DataFrame(
    [[2.0, 1.0], [3.0, np.nan], [1.0, 1.0], [1.0, 0.0]], columns=list("AB")
)

df.cumprod(skipna=False)
AB
02.01.0
16.0NaN
26.0NaN
36.0NaN

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

对前端限流操作(Redis版本)4种算法

固定时间窗口算法 固定时间窗口算法也可以叫做简单计数算法。网上有很多都将计数算法单独抽离出来。但是笔者认为计数算法是一种思想,而固定时间窗口算法是他的一种实现包括下面滑动时间窗口算法也是计数算法的一种实现。因为计数如果不和时间进行绑定的话那么失去…

Redis篇----第五篇

系列文章目录 文章目录 系列文章目录前言一、redis的过期策略以及内存淘汰机制二、Redis 常见性能问题和解决方案?三、为什么Redis的操作是原子性的,怎么保证原子性的?四、Redis事务前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家…

视频基础知识

文章目录 一、视频信号1.1 模拟信号1.2 数字信号 二、视频扫描格式三、视频图像基础四、图像颜色空间1、颜色空间分类2、YUV分类3、YUV存储方式4、YUV类型和存储类型关系5、Color Range6、RBG与YUV互转规范7、RBG与YUV转换公式 五、视频信号显示格式1、标清SD2、高清HD3、全高清…

001kafka源码项目gradle报错UnsupportedClassVersionError-kafka-报错-大数据学习

1 报错提示 java.lang.UnsupportedClassVersionError: org/eclipse/jgit/lib/AnyObjectId has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 如…

Ubuntu 22 安装VNC远程图形界面(GNOME)

0.更新软件源 $ sudo apt update 1.安装VNC $ sudo apt install tightvncserver 2.安装GNOME $ sudo apt install -y gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal ubuntu-desktop 3. 安装支持VNC与Windows之间复制粘贴 $ sudo apt install xcl…

docker (七)-部署容器

实战开始: 1 docker 部署 kafka 集群,并验证 参考 Docker搭建Kafka集群 优秀文档 2 docker 部署 mysql 参考上一篇docker(六) 3.docker 部署 zabbix 参考 docker部署zabbix 优秀文档 BUG:根据这篇文章部署后,发现zabbix-s…

思科命令配置使用方法介绍,全网最全!

你们好,我的网工朋友。 思科作为数通界的老大哥,老一辈网络工程师都是从学习思科开始的吧。 往期也发过命令大全,但是很多朋友反馈拿到命令却不知道从何下手? 今天这篇文章,我将给你介绍思科命令配置的使用方法&#x…

YOLO 损失函数之SIoU 和 Focal 损失在PyTorch中的实现

YOLO (You Only Look Once)系列模型以其实时目标检测能力而闻名,其有效性很大程度上归功于其专门的损失函数。在本文中,我们深入研究了YOLO 演化中不可或缺的各种YOLO 损失函数,重点关注它们在PyTorch中的实现。我们的目标是提供对这些功能的清晰的技术理解,这对于优化模…

【STM32 CubeMX】SPI W25Q64功能实现

文章目录 前言一、内部函数的实现1.1 选中和取消选中SPI Flash1.2 写使能函数1.3 获取读状态1.4 等待就绪状态 二、Flash读写函数实现2.1 读Flash ID2.2 擦除某个扇区2.3 写扇区2.4 读数据 三、测试代码总结 前言 SPI Flash 存储器在嵌入式系统中扮演着重要角色,它…

django定时任务(django-crontab)

目录 一:安装django-crontab: 二:添加django_crontab到你的INSTALLED_APPS设置: 三:运行crontab命令来创建或更新cron作业: 四:定义你的cron作业 五:创建你的管理命令&#xff…

模拟电子技术——同相比例运算放大电路、反向运算比例放大电路、反向加法器电路、差分减法器电路

文章目录 一、同相比例运算放大电路什么是比例运算放大电路线性区与非线性区电压跟随器 二、反向运算比例放大电路什么是反比例运算放大器电路及特点 三、反向加法器电路什么是反向加法器电路及特点及参数计算电路及特点及参数计算 四、差分减法器电路什么是差动减法器 总结 提…

【JVM】打破双亲委派机制

📝个人主页:五敷有你 🔥系列专栏:JVM ⛺️稳中求进,晒太阳 打破双亲委派机制 打破双亲委派机制三种方法 自定义类加载器 ClassLoader包含了四个核心方法 //由类加载器子类实现,获取二进制数据调用…

使用Erlang/OTP构建容错的软实时Web应用程序

简单介绍 OTP (Open Telecom Platform) OTP 是包装在Erlang中的一组库程序。OTP构成Erlang的行为机制(behaviours),用于编写服务器、有限状态机、事件管理器。不仅如此,OTP的应用行为(the appl…

MySQL之json数据操作

1 MySQL之JSON数据 总所周知,mysql5.7以上提供了一种新的字段格式json,大概是mysql想把非关系型和关系型数据库一口通吃,所以推出了这种非常好用的格式,这样,我们的很多基于mongoDB的业务都可以用mysql去实现了。当然…

js设计模式:观察者模式

作用: 和发布订阅模式基本类似。 当某一对象状态发生变化时,所有的观察者都会收到通知。 vue响应式原理就是很经典的案例,数据发生变化,通知各个依赖。 示例: class TaobaoShop{constructor(){this.list []}addSub(name,data){this.list.push({name,data})}pubUser(name,d…

学习数据结构和算法的第9天

题目讲解 移除元素 ​ 给你一个数组nums和一个值 val,你需要 原地 移除所有数值等于 val的元素,并返回移除后数组的新长度。 ​ 不要使用额外的数组空间,你必须仅使用0(1)额外空间并 原地 修改输入数组。 ​ 元素的顺序可以改变。你不需要…

Mouse Anti-HDM IgE Antibody Assay Kit

哮喘作为一种常见的慢性炎症类疾病,影响着全世界约3亿各年龄段的人。哮喘一般是由于暴露于过敏原(尘螨、宠物皮屑、花粉及霉菌等)引起的,其特征是气流阻塞和支气管痉挛。屋尘螨(house dust mite, HDM)是最常…

ASUS华硕枪神8笔记本电脑G614JIR,G814JVR,G634JYR,G834JZR工厂模式出厂Windows11系统 带重置还原功能

适用ROG枪神8系列笔记本型号: G614JIR、G614JVR、G634JYR、G634JZR G814JIR、G814JVR、G834JYR、G834JZR 链接:https://pan.baidu.com/s/1tYZt6XFNC2d6YmwTbtFN7A?pwd3kp8 提取码:3kp8 带有ASUS RECOVERY恢复功能、自带所有驱动、出厂主…

人工智能学习与实训笔记(十六):OpenAI SORA模型技术报告全文中英对照 (GPT4翻译+人工润色)

目录 Video generation models as world simulators(视频生成模型作为世界模拟器) Turning visual data into patches (将视觉数据转换为图像块) Video compression network (视频压缩网络) Spacetim…

2.16日学习打卡----初学Dubbo(一)

2.16日学习打卡 目录: 2.16日学习打卡一. 什么是分布式?二. 什么是RPC?三. Dubbo概念_简介四. Dubbo核心组件五.Dubbo配置开发环境六. Dubbo配置开发环境_管理控制台 一. 什么是分布式? 可以看我的这篇文章–2.14日学习打卡----初学Zookeeper(一) 二.…