У меня есть проблема, которую, вероятно, можно решить с помощью MultiIndex, reindex и period_range, но я не представляю, как именно это сделать.
У меня есть следующий фрейм данных:
proj_id date_from date_to some_value
abc1001 2017-10-20 2017-10-21 7
abc1002 2017-10-29 2017-11-03 10
abc1002 2017-09-05 2017-09-07 9
abc1003 2017-09-05 2017-09-05 3
Я бы хотел преобразовать его в что-то вроде этого:
proj_id date some_value
abc1001 2017-10-20 7
abc1001 2017-10-21 7
abc1002 2017-10-29 10
abc1002 2017-10-30 10
abc1002 2017-10-31 10
abc1002 2017-11-01 10
abc1002 2017-11-02 10
abc1002 2017-11-03 10
abc1002 2017-09-05 9
abc1002 2017-09-06 9
abc1002 2017-09-07 9
abc1003 2017-09-05 3
Так что в основном у меня есть несколько диапазонов дат для проекта с некоторым значением и я хочу создавать записи для каждого дня между этими диапазонами, НО диапазоныотличаются для каждого проекта, и даже может быть много отдельных диапазонов для одного проекта.
Я думал, что если бы мне удалось каким-то образом построить MultIindex, например, так:
some_value
abc1001 2017-10-20 7
2017-10-21 NaN
abc1002 2017-09-05 9
2017-09-06 NaN
2017-09-07 NaN
2017-10-29 10
2017-10-30 NaN
2017-10-31 NaN
2017-11-01 NaN
2017-11-02 NaN
2017-11-03 NaN
abc1003 2017-09-05 3
, то я был быМожно заполнить пропущенные значения, используя DataFrame.fillna(method='ffill')
, но проблема в том, что я не знаю, как создать такой индекс.
Конечно, это только упрощенный пример, и на самом деле количество проектов велико.