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))