2017-12-10 4 views
-1

첫째을 판다 내 데이터입니다 : 각 타임 스텝에 대한는 - 여기,

val slopes time 
0 11 0.0  1 
1 11 0.0  2 
2 11 0.0  3 
3 06 0.0  4 
4 05 0.0  5 

, 내가 값 사이의 차이를 계산하고 싶습니다.

답변

1

나는 처음에 제안한 df.val - df.val.shift (1)에 대해 간단히 .diff() (@ Johnn 덕분에)을 사용할 수 있습니다. 그러나 ... 이것은 속임수 여야합니다.

워드 프로세서 찾고 우리가 발견한다 :

DEF DIFF (도착, N, 축 = 0) : ''자체 사이의 N " 차이 (N)와 유사 ss.shift

import pandas as pd 

data = {'slopes': {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0}, 
'time': {0: 1, 1: 2, 2: 3, 3: 4, 4: 5}, 
'val': {0: 11, 1: 11, 2: 11, 3: 6, 4: 5}} 

df = pd.DataFrame(data) 

#df['diff'] = (df.val-df.val.shift(1)).fillna(0) 
df['diff'] = df.val.diff().fillna(0) 

print(df) 

반환

실제로
slopes time val diff 
0  0.0  1 11 0.0 
1  0.0  2 11 0.0 
2  0.0  3 11 0.0 
3  0.0  4 6 -5.0 
4  0.0  5 5 -1.0 
+1

수 J ust do'df.val.diff()' – JohnE

+0

@ JohnE Yesss .. 물론입니다. 나는 더 짧은 버전이 있다는 것을 알았다. 그러나 이것이 내가 추측하는 두포에서하는 일입니다. –