DataFrame.cumprod(axis=None, skipna=True, *args, **kwargs)
通过DataFrame或Series轴返回累计产品。
返回包含累计产品的相同大小的DataFrame或Series。
参数: | axis : { 索引或轴的名称。0相当于 skipna : 布尔值,默认为 排除 * args,** kwargs: 其他关键字无效,但可能与NumPy兼容。 |
返回: | cumprod : |
例子
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))