2017-12-13 1 views
1

기존 열을 기반으로 DataFrame에서 새 열을 계산하려고합니다. 새 열 값은 원본 열의 같은 행에있는 값 (여기에서 '간격')과 새 열의 이전 값의 합계가되어야합니다. 아래 다이어그램은 수식을 보여줍니다.새 열의 원래 열과 선행 셀을 기반으로 새 DataFrame 열 계산

interval new_column 
0 670  = i0 
1 664  = i1 + n_c0 
2 680  = i2 + n_c1 
3 672  = i3 + n_c2 
4 673  = i4 + n_c3 
... 
n ###  = in + i(n - 1) 

현재 목록을 통해 계산하여 원래의 DataFrame에 연결했습니다.

temp = [] 
for i, val in enumerate(interval): 
    if i == 0: 
     temp.append(val/1000) 
    else: 
     temp.append((val/1000) + temp[i - 1]) 

확실한 방법이 있습니다. 팬더에는 아직 능통하지 않습니다.

+1

당신은) (DF [ '새로운'] = 안양 [ '간격'] cumsum을'필요하십니까'? – jezrael

+0

예 ... 그 기능을 완전히 잊었습니다. DataFrame 메서드를 모두 배울 수있는 가장 좋은 방법은 무엇입니까? – Braden

+0

[In docs] (http://pandas.pydata.org/pandas-docs/stable/api.html)는 모두 기능입니다. – jezrael

답변

1

당신은 div에 의해 분할을 필요로하고 cumsum :.

df['new'] = df['interval'].div(1000).cumsum() 
    interval new 
0  670 0.670 
1  664 1.334 
2  680 2.014 
3  672 2.686 
4  673 3.359 
관련 문제