2017-12-10 3 views

答えて

1

最初に私が提案したdf.val - df.val.shift(1)については、.diff()(@ JohnEのおかげで)を使うことができます。しかし...これは欺瞞でなければならない。

ドキュメントを見て、我々は見つけること:

DEF差分(ARR、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はもちろんです。私は短いバージョンがあることを知っていた。しかし、これは私が推測するボンネットの下で行うことです。 –

関連する問題