pandas 데이터프레임에서 이전 3개의 값의 합인 새로운 컬럼을 만들기
조회수 414회
DF 형식의 데이터에서 상위 3개의 누적값 계산
Data Result 식
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
위와같이 Data기준 상위 3개의 컬럼값을 합한 누적값을 판다스로 만들고 싶은데 어떻게 해야 할까요
2 답변
-
>>> 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
-
댓글 입력