【问题标题】:User defined croston function in PythonPython中用户定义的croston函数
【发布时间】:2019-02-14 15:19:39
【问题描述】:

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

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

我想要这样的输出,它应该是 pandas 数据帧格式。

q  a
1  1
2  1
3  3
3  1
1  2 
2  3
4  4 

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

谁能帮我解决这个问题?

【问题讨论】:

  • “我尝试了一些代码”你尝试了哪些代码?
  • 我尝试了非常基本的级别代码,即首先我找到系列中的非零元素并将其存储为 q。之后,我无法继续获得所需的输出。
  • 你能解释一下 a.. 中的值背后的逻辑吗??

标签: python pandas dataframe time-series


【解决方案1】:

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

如果您想用1 填充NaN,请使用s = s.bfill()

【讨论】:

    猜你喜欢
    • 2018-08-18
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多