5
초기 값으로 시작하는 열을 생성해야하며 그 열의 과거 값을 포함하는 함수로 생성해야합니다. 예를 들어팬더 : 자체 참조 이전 값이있는 열 작성
df = pd.DataFrame({'a': [1,1,5,2,7,8,16,16,16]})
df['b'] = 0
df.ix[0, 'b'] = 1
df
a b
0 1 1
1 1 0
2 5 0
3 2 0
4 7 0
5 8 0
6 16 0
7 16 0
8 16 0
지금, 나는 이전 행의 최소를 복용하고 두 가지를 추가하여 열 'B'의 나머지 부분을 생성합니다. 한 가지 해결책은 팬더는이 작업을 수행 할 수있는 '깨끗한'방법이 있습니까 원하는 출력
a b
0 1 1
1 1 3
2 5 3
3 2 5
4 7 4
5 8 6
6 16 8
7 16 10
8 16 12
결과
for i in range(1, len(df)):
df.ix[i, 'b'] = df.ix[i-1, :].min() + 2
것입니까? 가급적 계산을 벡터화하는 것이 좋습니까?
나는 반복을 포함하지 않는 방법을 생각할 수 없다. 하지만 당신이'.ix []'을 사용할 필요가 없다고 말할 것입니다; 'df.b [i] = df.iloc [i-1] .min() + 2'을 가질 수 있습니다. – chrisaycock