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

本文详细介绍了Pandas库中的DataFrame.product()函数,包括其计算公式、语法、参数如axis、skipna、numeric_only和min_count的作用,以及提供多个示例来演示如何在实际应用中使用该方法。
Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

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

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

传送门: Pandas API参考目录

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

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

Pandas.DataFrame.product()

Pandas.DataFrame.product 方法用于返回行或列的所有元素的乘积

  • Pandas.DataFrame.productpandas.DataFrame.prod 效果一致。
  • Pandas.DataFrame.prodpandas.DataFrame.product 的简化缩写。

计算公式:

  • 公式

    ∏ i = 1 n a i \prod_{i=1}^{n} a_i i=1nai

    下标 i i i 表示起始位置,上标 n n n 表示终止位置。, a i a_i ai 表示被乘的项。

语法:

DataFrame.product(axis=0, skipna=True, numeric_only=False, min_count=0, **kwargs)

返回值:

  • Series or scalar

参数说明:

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

  • axis : {index (0), columns (1)

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

    ⚠️ 注意 :

    axis=None 已被标记为弃用,在未来的版本,将使用新的方法实现。

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

    新增于 Pandas 2.0.0 : axis 参数,新增于Pandas 2.0.0 版本。

skipna 忽略缺失值

  • skipna : bool, default False >

    skipna 参数,用于指定求乘积的时候是否忽略缺失值:

    • False: 不忽略,缺失值 在求乘积的时候会被解析为浮点数 float 1.0例4
    • True: 忽略缺失值。

numeric_only 排除非纯数值的行或列

  • numeric_only : bool, default False

    numeric_only 参数,用于控制是否 排除非纯数值的行或列:

    • False: 不排除。
    • True: 只对纯数值型的行或列计算乘积。例5

min_count 有效数值数量

  • min_count : int, default 0

    min_count 参数,用于指定执行操作所需的有效值数量。如果存在的非 NA 值少于 min_count,则结果将为 NA例6

**kwargs

  • **kwargs :

    用于保持和 numpy 兼容而保留的参数,一般不需要使用。

相关方法:

➡️ 相关方法


示例:

测试文件下载:

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

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

测试文件下载位置.png

测试文件下载位置

例1:如果是 Series 始终保持 axis=0,即计算整列的乘积。

import numpy as np
import pandas as pd

s = pd.Series([24.0, np.nan, 21.0, 33, 26], name="age")
s.product()
432432.0

例2、求 DataFrame 每列的乘积

import numpy as np
import pandas as pd

df = pd.DataFrame({'person_id': [0, 1, 2, 3],
                   'age': [21, 25, 62, 43],
                   'height': [1.61, 1.87, 1.49, 2.01]}
                  )

df.product()
person_id    0.000000e+00
age          1.399650e+06
height       9.016745e+00
dtype: float64

例3、求 DataFrame 每行的乘积

import numpy as np
import pandas as pd

df = pd.DataFrame({'person_id': [0, 1, 2, 3],
                   'age': [21, 25, 62, 43],
                   'height': [1.61, 1.87, 1.49, 2.01]}
                  ).set_index('person_id')


df.product(axis=1)
0      0.00
1     46.75
2    184.76
3    259.29
dtype: float64

例4:如果整行或整列,都是缺失值,那么乘积是1,因为在DataFrame.product方法中,缺失值被解析为1.0。

import pandas as pd
import numpy as np

df = pd.DataFrame({"A": [np.NaN,np.NaN]})

df.product()
A    1.0
dtype: float64

B列由于是数字+字符串,所以没有被计算最小值。 C列布尔值和浮点数混用,也没有被计算最小值

例5:numeric_only=True 排除非数值类型的列。

import pandas as pd
import numpy as np

df = pd.DataFrame({"A": [0.5,4], "B": ["a","a"], "C": [True,True]})

df.product(numeric_only=True)
A    2.0
C    1.0
dtype: float64

B列由于是字符串,所以没有被计算乘积。

例6:非缺失值数量,小于 min_count ,则结果为 nan

import pandas as pd
import numpy as np

df = pd.DataFrame({"A": [0.5,4], "B": ["a","a"], "C": [True,True]})

df.product(numeric_only=True, min_count=3)
A   NaN
C   NaN
dtype: float64

观察上面的计算结果,A列因为只有两个有效值,所以返回了 NaN

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数象限

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值