计算每个值和时间步之间的斜率 - 熊猫

时间:2017-12-10 22:30:56

标签: python pandas

首先,这是我的数据:

    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 个答案:

答案 0 :(得分:1)

你可以简单地使用.diff()(感谢@JohnE)至于我最初提出的df.val - df.val.shift(1)。但是......这必须是一个骗局。

查看文档,我们发现:

  

def diff(arr,n,axis = 0):       “””       自我之间的差异,       类似于s-s.shift(n)

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