如何迭代地向下乘以列?

时间:2016-08-30 03:46:06

标签: pandas

我正在艰难度过这一个 - 不知道为什么......也许是时间已晚。

我在pandas中有一个数据帧如下:

1     10
2     11
3     20
4     5
5     10

我想为每一行计算它上面每行的被乘数。例如,在第3行,我想计算10 * 11 * 20或2,200。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

使用cumprod

示例:

df = pd.DataFrame({'A': [10, 11, 20, 5, 10]}, index=range(1, 6))
df['cprod'] = df['A'].cumprod()

答案 1 :(得分:1)

注意,由于您的示例只是一个列,因此可以使用Series简洁地完成累积产品:

import pandas as pd

s = pd.Series([10, 11, 20, 5, 10])
s

# Output
0    10
1    11
2    20
3     5
4    10
dtype: int64

s.cumprod()

# Output
0        10
1       110
2      2200
3     11000
4    110000
dtype: int64

感谢@bananafish找到固有的cumprod方法。