【发布时间】:2017-12-15 16:33:37
【问题描述】:
我有一个这样的数据框:
timestamp variance
2017-07-10 20:42:42 0
2017-07-10 20:42:42 1
2017-07-10 20:42:42 2
2017-07-10 20:42:43 6
2017-07-10 20:42:43 7
2017-07-10 20:42:43 9
2017-07-10 20:42:43 3
2017-07-10 20:42:43 4
2017-07-10 20:42:43 5
2017-07-10 20:42:43 1
2017-07-10 20:42:43 4
2017-07-10 20:42:43 1
2017-07-10 20:42:43 3
2017-07-10 20:42:43 7
2017-07-10 20:42:43 9
我想添加一个新列,对于方差等于或大于的每一行递增 5. 当值低于 5 时,计数应该减少。如果值达到 0,它应该保持在 0。
它应该是这样的:
timestamp variance cumvar
2017-07-10 20:42:42 0 0
2017-07-10 20:42:42 1 0
2017-07-10 20:42:42 2 0
2017-07-10 20:42:43 6 1
2017-07-10 20:42:43 7 2
2017-07-10 20:42:43 9 3
2017-07-10 20:42:43 3 2
2017-07-10 20:42:43 4 1
2017-07-10 20:42:43 5 2
2017-07-10 20:42:43 1 1
2017-07-10 20:42:43 4 0
2017-07-10 20:42:43 1 0
2017-07-10 20:42:43 3 0
2017-07-10 20:42:43 7 1
2017-07-10 20:42:43 9 2
我最接近这样做的是:
df['cumvar'] = np.where((df['variance'] > 5), 1, -1).cumsum()
当然,这并不适用于累积和的最小值 0。我该如何调整它以实现上述目标?
【问题讨论】: