Python pandas.DataFrame.cumprod函数方法的使用

pandas.DataFrame.cumprod() 是一个用于计算累积乘积的函数。它沿着指定的轴计算 DataFrame 中元素的累积乘积,并返回结果。本文主要介绍一下Pandas中pandas.DataFrame.cumprod方法的使用。

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

[source]

通过DataFrame或Series轴返回累计产品。

返回包含累计产品的相同大小的DataFrame或Series。

参数

axis : {0'index',1或'columns'},默认为0

索引或轴的名称。0相当于None'index'

skipna : 布尔值,默认为True

排除NA / null值。如果整行/列为NA,则结果为NA

* args,** kwargs

其他关键字无效,但可能与NumPy兼容。

返回

cumprod : SeriesDataFrame

例子

1)沿着行方向计算累积乘积

import pandas as pd

# 创建示例 DataFrame
data = {
    'A': [1, 2, 3, 4],
    'B': [10, 20, 30, 40],
    'C': [100, 200, 300, 400]
}

df = pd.DataFrame(data)

# 沿着行方向计算累积乘积
result = df.cumprod(axis=0)
print(result)

2)沿着列方向计算累积乘积

import pandas as pd

# 创建示例 DataFrame
data = {
    'A': [1, 2, 3, 4],
    'B': [10, 20, 30, 40],
    'C': [100, 200, 300, 400]
}

df = pd.DataFrame(data)

# 沿着列方向计算累积乘积
result = df.cumprod(axis=1)
print(result)

3)处理包含 NaN 的 DataFrame

import pandas as pd
import numpy as np

# 创建包含 NaN 值的 DataFrame
data = {
    'A': [1, 2, np.nan, 4],
    'B': [10, np.nan, 30, 40],
    'C': [100, 200, 300, np.nan]
}

df = pd.DataFrame(data)

# 沿着行方向计算累积乘积,跳过 NaN
result_skipna = df.cumprod(axis=0, skipna=True)
print("Skip NaN:")
print(result_skipna)

# 沿着行方向计算累积乘积,不跳过 NaN
result_no_skipna = df.cumprod(axis=0, skipna=False)
print("\nDo not skip NaN:")
print(result_no_skipna)

4)使用示例

import pandas as pd
import numpy as np

# 创建一个包含NaN值的Series
s = pd.Series([2, np.nan, 5, -1, 0])
print("原始Series:")
print(s)

# 默认情况下,计算累积乘积并忽略NaN值print("\n默认情况下忽略NaN值的累积乘积:")
print(s.cumprod())

# 包含NaN值进行累积乘积计算print("\n包含NaN值的累积乘积:")
print(s.cumprod(skipna=False))
推荐阅读
cjavapy编程之路首页