У меня есть данные за период более года.Мне интересно сгруппировать данные по неделям и получить наклон двух переменных по неделям.Вот как выглядят данные:
Date | Total_Sales| Products
2015-12-30 07:42:50| 2900 | 24
2015-12-30 09:10:10| 3400 | 20
2016-02-07 07:07:07| 5400 | 25
2016-02-07 07:08:08| 1000 | 64
Так что в идеале я хотел бы выполнять линейную регрессию для total_sales и продуктов для каждой недели этих данных и записывать наклон.Это работает, когда в данных представлена каждая неделя, но у меня возникают проблемы, когда в данных пропущено несколько недель.Я знаю, что мог бы сделать это, превратив дату в номер недели, но чувствую, что результат будет искажен, потому что есть данные за год.
Вот код, который у меня пока есть:
df['Date']=pd.to_datetime(vals['EventDate']) - pd.to_timedelta(7,unit='d')
df.groupby(pd.Grouper(key='Week', freq='W-MON')).apply(lambda v: linregress(v.Total_Sales, v.Products)[0]).reset_index()
Однако я получаю следующую ошибку:
ValueError: Inputs must not be empty.
Я ожидаю, что результат будет выглядеть следующим образом:
Date | Slope
2015-12-28 | -0.008
2016-02-01 | -0.008