What would be the fastest way to do the sum product of the below DF
A | B |
---|---|
2 | 6 |
5 | 5 |
7 | 5 |
8 | 2 |
6 | 11 |
I have a for loop :
for i in range(len(DF)) :
Sumproduct = 0
What I aim to do in this for loop is for example if
i=1 then sumproduct = 2*6
i=2 then sumproduct = 2*6 5*5
i=3 then sumproduct = 2*6 5*5 7*5
Explanation in table :
A | B | SumProduct |
---|---|---|
2 | 6 | |
5 | 5 | 2x6 |
7 | 5 | 2x6 5x5 |
8 | 2 | 2x6 5x5 7x5 |
6 | 11 | 2x6 5x5 7x5 8x2 |
ect...
CodePudding user response:
You could use prod()
and cumsum()
with shift()
df.prod(axis=1).cumsum().shift()
CodePudding user response:
That'll be cumsum on the product of the two columns then shift down:
df['SumProduct'] = df['A'].mul(df['B']).cumsum().shift()