看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
pandas.DataFrame.prod
方法用于计算 DataFrame 或 Series 沿指定轴的乘积。它会将所有元素相乘,返回每列或每行的乘积。这个方法非常适合在处理数值数据时,计算一组数据的累积乘积。
返回请求轴上的值的乘积。
DataFrame.prod(
axis=None,
skipna=True,
level=None,
numeric_only=False,
min_count=0,
**kwargs
)
它是 DataFrame.product
的简写,建议用此简写。
axis
: (int 或 str, 可选, 默认值 None)
0
或 'index'
,则按列计算乘积(即对每一列计算乘积)。1
或 'columns'
,则按行计算乘积(即对每一行计算乘积)。skipna
: (bool, 默认值 True)
是否忽略缺失值(NaN)。如果为 True
,则忽略 NaN;如果为 False
,任何包含 NaN 的运算结果都为 NaN。
numeric_only
: (bool, 默认值 False)
如果为 True
,只计算数值型数据。非数值类型的列会被排除在计算之外。
min_count
: (int, 默认值 0)
如果数据中的非 NaN 值数量少于 min_count
,则结果为 NaN。这个参数允许你控制计算所需的最少有效数据点数。
****kwargs
**:
其他额外的关键字参数。
# 默认情况下,空或全NA系列的乘积为1
pd.Series([], dtype="float64").prod()
# 1.0
# 这可以通过min_count参数进行控制
pd.Series([], dtype="float64").prod(min_count=1)
# nan
# 得益于skipna参数,min_count以相同的方式处理所有NA和空序列。
pd.Series([np.nan]).prod()
# 1.0
pd.Series([np.nan]).prod(min_count=1)
# nan
基础示例:DataFrame 每列的乘积
创建一个 DataFrame 并计算每列的乘积:
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]
})
print(df.prod())
输出:
A 24
B 1680
C 11880
dtype: int64
在这个示例中,每列的所有值相乘后得到结果。
按行计算乘积
如果想按行计算乘积,可以使用 axis=1
:
print(df.prod(axis=1))
输出:
0 45
1 120
2 231
3 384
dtype: int64
这里,输出结果表示每一行所有元素的乘积。
忽略缺失值
如果数据中包含缺失值,可以使用 skipna=True
来忽略这些值:
df_with_nan = pd.DataFrame({
'A': [1, 2, None, 4],
'B': [5, 6, 7, 8],
'C': [9, None, 11, 12]
})
print(df_with_nan.prod(skipna=True))
输出:
A 8.0
B 1680.0
C 1188.0
dtype: float64
这里,由于 skipna=True
,None
值被忽略,仍然能够计算出乘积。
prod()
方法非常适合计算 DataFrame 或 Series 的累积乘积,能够处理缺失值,并且可以灵活选择计算的轴和数据类型。适用于财务分析、工程数据处理以及其他需要累积乘积的场景。
更新时间:2024-08-08 20:31:00 标签:pandas python prod 乘积