Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下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 : Series或DataFrame

例子

Series

>>> s = pd.Series([2, np.nan, 5, -1, 0])
>>> s
0 2.0
1 NaN
2 5.0
3 -1.0
4 0.0
dtype: float64

默认情况下,忽略NA值

>>> s.cumprod()
0 2.0
1 NaN
2 10.0
3 -10.0
4 -0.0
dtype: float64

要在操作中包含NA值,请使用 skipna=False

>>> s.cumprod(skipna=False)
0 2.0
1 NaN
2 NaN
3 NaN
4 NaN
dtype: float64
DataFrame
>>> df = pd.DataFrame([[2.0, 1.0],
... [3.0, np.nan],
... [1.0, 0.0]],
... columns=list('AB'))
>>> df
A B
0 2.0 1.0
1 3.0 NaN
2 1.0 0.0

默认情况下,遍历行并在每列中查找产品。这相当于axis=None或axis='index'

>>> df.cumprod()
A B
0 2.0 1.0
1 6.0 NaN
2 6.0 0.0

要迭代列并在每行中查找产品,请使用 axis=1

>>> df.cumprod(axis=1)
A B
0 2.0 2.0
1 3.0 NaN
2 1.0 0.0