我想在我的意甲中找到正面和负面的波动。那么如何标记数据?我的数据
示例
:
| date | value |
|---------------------|-------|
| 2018-09-06 00:00:03 | 0 |
| 2018-09-06 00:00:04 | 0 |
| 2018-09-06 00:00:05 | 1 |
| 2018-09-06 00:00:06 | 1 |
| 2018-09-06 00:00:07 | 2 |
| 2018-09-06 00:00:08 | -1 |
| 2018-09-06 00:00:09 | -5 |
| 2018-09-06 00:00:10 | 0 |
| 2018-09-06 00:00:11 | -6 |
| 2018-09-06 00:00:12 | 2 |
| 2018-09-06 00:00:13 | 0 |
| 2018-09-06 00:00:14 | 4 |
我想要的结果:
| date | value | sign |
|---------------------|-------|------|
| 2018-09-06 00:00:03 | 0 | 1 |
| 2018-09-06 00:00:04 | 0 | 1 |
| 2018-09-06 00:00:05 | 1 | 1 |
| 2018-09-06 00:00:06 | 1 | 1 |
| 2018-09-06 00:00:07 | 2 | 1 |
| 2018-09-06 00:00:08 | -1 | 2 |
| 2018-09-06 00:00:09 | -5 | 2 |
| 2018-09-06 00:00:10 | 0 | 2 |
| 2018-09-06 00:00:11 | -6 | 2 |
| 2018-09-06 00:00:12 | 2 | 3 |
| 2018-09-06 00:00:13 | 0 | 3 |
| 2018-09-06 00:00:14 | 4 | 3 |
接着:
mydata.groupby(['sign']).transform('sum')
您的采样数据不包括正波和负波被零分开的情况,例如1 0 0 -1
。这是解决此问题的解决方案:
# mask the zeros
s = mydata['value'].eq(0)
# merge the zeros to the wave after them
m = np.sign(mydata['value']).mask(s).bfill()
# result
mydata['sign'] = m.diff().ne(0).cumsum()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句