У меня есть два кадра данных. Мы назовем их main и valid_dates
главный:
name from amount days
A 7/31/18 200 1
B 7/31/18 300 1
C 7/30/18 200 1
D 7/27/18 100 3
......
G 7/17/18 50 1
H 7/13/18 150 4
valid_dates:
date
7/13/18
7/16/18
7/17/18
7/27/18
7/30/18
7/31/18
Вот где это становится сложным. Мне нужно расширить строки, где дни> 1, но я не могу использовать недопустимую дату.
вывод:
name from amount days
A 7/31/18 200 1
B 7/31/18 300 1
C 7/30/18 200 1
D 7/27/18 100 3
......
G 7/17/18 50 1
H 7/16/18 150 1
H 7/13/18 150 3
альтернативный (и в равной степени действительный) вывод:
name from amount days rep_days rep_date
A 7/31/18 200 1 1 7/31/18
B 7/31/18 300 1 1 7/31/18
C 7/30/18 200 1 1 7/30/18
D 7/27/18 100 3 3 7/27/18
......
G 7/17/18 50 1 1 7/17/18
H 7/13/18 150 4 1 7/16/18
H 7/13/18 150 4 3 7/13/18
Чтобы уточнить, что произошло:
-7 / 27 + 3 = 7/30. Тем не менее, дата между 7/27 и 7/30 не была указана в valid_dates, поэтому запись оставлена одна, а 7/27 представляет 3 дня.
-7 / 13 + 4 = 7/17. Единственная дата между 7/13 и 7/17 в valid_dates - 7/16. Поэтому будет добавлена запись 7/16, и она будет представлять один день. 7/13 должен представлять 3. Остальные данные строки дублируются.
- исходя из приведенного выше примера. Если бы 7/15 и 7/16 были в valid_dates, то были бы добавлены записи 7/15 и 7/16, каждая из которых представляет один день. 7/13 будет представлять 2. Остальные данные строки дублируются.
Можно предположить, что если дни> 1, из + days никогда не будет больше, чем другая запись в столбце from.
Я понимаю, что это может сбивать с толку, поэтому дайте мне знать, если у вас есть какие-либо вопросы.