用户定义的croston函数

时间:2018-09-10 08:11:02

标签: python pandas dataframe time-series

我想预测间歇性需求值。为此,我需要以下输出:

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 

我尝试了一些代码,但是没有得到正确的输出。

有人可以帮我解决这个问题吗?

1 个答案:

答案 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()