Предположим, у меня есть набор данных, который состоит из следующих столбцов:
Stock_id
: идентификатор акции Date
: дата 2018 г., например25/03/2018 Stock_value
: стоимость акции на эту конкретную дату
У меня есть несколько дат, разных для каждой акции, которые полностью отсутствуют в наборе данныхи я хотел бы их заполнить.
Под пропущенными датами я подразумеваю, что нет даже строки для каждой из этих дат;не то, чтобы они существовали в наборе данных, а просто в том, что Stock_value
в строках равно NA и т. д.
Ограничение состоит в том, что некоторые акции были представлены на фондовом рынке в какое-то время в 2018 году, поэтому, очевидно, я не хочузаполнить даты для этих акций, в то время как эти акции не существовали.
Под этим я подразумеваю, что если акция была представлена на фондовом рынке 21/05/2018, то, очевидно, я хочу заполнить все пропущенныедаты для этой акции с 21/05/2018 по 31/12/2018, но не раньше 21/05/2018.
Какой самый эффективный способ сделать это?
IЯ видел некоторые сообщения в StackOverflow ( post_1 , post_2 и т. д.), но я думаю, что мой случай более особенный, поэтому я хотел бы найти эффективный способ сделать это.
Позвольте мне привести пример.Давайте ограничим это только двумя акциями и только неделей с 01/01/2018 по 07/07/2018, иначе это не будет соответствовать здесь.
Предположим, что у меня изначально есть следующее:
Stock_id Date Stock_value
1 01/01/2018 124
1 02/01/2018 130
1 03/01/2018 136
1 05/01/2018 129
1 06/01/2018 131
1 07/01/2018 133
2 03/01/2018 144
2 04/01/2018 148
2 06/01/2018 150
2 07/01/2018 147
Таким образом, для Stock_id
= 1 дата 04/01/2018 отсутствует.
Для Stock_id
= 2 дата 05/01/2018 отсутствует, а поскольку даты для этой акции начинаются с 01.01.2008, то даты до этой даты заполнять не следует (поскольку акция была представлена на фондовом рынке в03/01/2018).
Следовательно, я хотел бы получить следующее:
Stock_id Date Stock_value
1 01/01/2018 124
1 02/01/2018 130
1 03/01/2018 136
1 04/01/2018 NA
1 05/01/2018 129
1 06/01/2018 131
1 07/01/2018 133
2 03/01/2018 144
2 04/01/2018 148
2 05/01/2018 NA
2 06/01/2018 150
2 07/01/2018 147