我想预测间歇性需求值。为此,我需要以下输出:
1. non-zero elements values(q)
2. inter arrival time between two non-zero elements(a)
例如,我的数据是这样的[type:series]
1,2,0,0,3,3,0,1,0,0,2,0,0,0,0,4,0,0
我想要这样的输出,它应该是熊猫数据帧格式。
q a
1 1
2 1
3 3
3 1
1 2
2 3
4 4
我尝试了一些代码,但是没有得到正确的输出。
有人可以帮我解决这个问题吗?
答案 0 :(得分:2)
IIUC
import pandas as pd
lst = [1,2,0,0,3,3,0,1,0,0,2,0,0,0,0,4,0,0]
s = pd.Series(lst, name='q')
s = s[s!=0].reset_index()
s['a'] = s['index'] - s['index'].shift(1)
s.drop('index', axis=1, inplace=True)
print(s)
# output:
q a
0 1 NaN
1 2 1.0
2 3 3.0
3 3 1.0
4 1 2.0
5 2 3.0
6 4 5.0
如果您想用NaN
填充1
,请使用s = s.bfill()