Я работаю с набором данных, который ежемесячно содержит информацию о нескольких пользователях. И у каждого пользователя свой диапазон времени. Также отсутствуют данные для каждого пользователя. То, что я хотел бы сделать, это заполнить отсутствующие данные для каждого пользователя на основе временного диапазона для каждого пользователя (от минимального времени до максимального времени в месяцах).
Поскольку шаблон данных попадает ввременные ряды, линейная интерполяция не имеет смысла. Я также установил мультииндекс для фрейма данных на основе «пользователя» и «даты», но интерполяция на основе времени не работает (так как она еще не реализована)
x = pd.DataFrame({'user': ['a','a','a','a','a','a','a','a','b','b','b','b','b','b','b','b','b','c','c','c','c','c','c','c','c'],'dt':['2015-01-01','2015-02-01','2015-03-01','2015-04-01','2015-05-01','2015-06-01','2015-07-01','2015-08-01','2016-01-01','2016-02-01','2016-03-01','2016-04-01','2016-05-01','2016-06-01','2016-07-01','2016-08-01','2016-09-01','2017-01-01','2017-02-01','2017-03-01','2017-04-01','2017-05-01','2017-06-01','2017-07-01','2017-08-01'], 'val': [1,33,np.nan,1,np.nan,4,2,np.nan,66,2,5,1,np.nan,np.nan,7,5,np.nan,1,np.nan,7,4,np.nan,5,3,np.nan]})
user dt val
0 a 2015-01-01 1
1 a 2015-02-01 33
2 a 2015-03-01 NaN
3 a 2015-04-01 1
4 a 2015-05-01 NaN
5 a 2015-06-01 4
6 a 2015-07-01 2
7 a 2015-08-01 NaN
8 b 2016-01-01 66
9 b 2016-02-01 2
10 b 2016-03-01 5
11 b 2016-04-01 1
12 b 2016-05-01 NaN
13 b 2016-06-01 NaN
14 b 2016-07-01 7
15 b 2016-08-01 5
16 b 2016-09-01 NaN
17 c 2017-01-01 1
18 c 2017-02-01 NaN
19 c 2017-03-01 7
20 c 2017-04-01 4
21 c 2017-05-01 NaN
22 c 2017-06-01 5
23 c 2017-07-01 3
24 c 2017-08-01 NaN
В приведенном вышенабор данных, столбец 'val' имеет несколько пропущенных значений, и я выясняю, как автоматизировать процесс выполнения этого для нескольких 'пользователей'.
Кроме того, будет ли построение модели временных рядов для каждого пользователя иметь смысл, если учесть нет. точек данных для каждого пользователя?
Любой ввод / обходной путь будет высоко ценится.
Спасибо, Люк.