Я хочу спрогнозировать значения непостоянного спроса. Для этого мне нужны следующие результаты:
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. После этого я не могу двигаться вперед для получения желаемого результата.
не могли бы вы объяснить логику значений в .. ??
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()
«Я пробовал некоторые коды», какие коды вы пробовали?