# Create a new column that is the sum of the previous three values in the pandas data frame

Asked 1 weeks ago, Updated 1 weeks ago, 1 views

Calculate the top three cumulative values from data in DF format

`````` Data Result expression
A   1          0
B   2          0
C   3          0
D   4          6    A+B+C
E   5          9    B+C+D
F   6          12   C+D+E
G   7          15   D+E+F
H   8          18   E+F+G
I   9          21   F+G+H

``````

As above, I want to make the accumulated value of the top three column values based on the data into Pandas, so what should I do?

python pandas

2022-09-20 08:57

``````>>> import pandas as pd
>>> df = pd.DataFrame({ "Data":range(1, 10) }, index=list("ABCDEFGHI"))
>>> df
Data
A     1
B     2
C     3
D     4
E     5
F     6
G     7
H     8
I     9

>>> i = 4
>>> df.iloc[(i-3):i, 0]
B    2
C    3
D    4
Name: Data, dtype: int64

>>> s = [ sum(df.iloc[(i-3):i, 0]) for i in range(3, len(df)) ]
>>> s
[6, 9, 12, 15, 18, 21]
>>> s = [ 0, 0, 0 ] + s
>>> s
[0, 0, 0, 6, 9, 12, 15, 18, 21]

>>> df["Result"] = s
>>> df
Data  Result
A     1       0
B     2       0
C     3       0
D     4       6
E     5       9
F     6      12
G     7      15
H     8      18
I     9      21
``````

2022-09-20 08:57

Thank you every time.

2022-09-20 08:57

Popular Tags
python x 1522
android x 362
c x 361
java x 353
javascript x 303
php x 126
swift x 112
mysql x 92
r x 87
html x 51