Панды - создавать новые строки с ограничениями и заполнять их вперед существующими данными - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть два кадра данных. Мы назовем их 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.

Я понимаю, что это может сбивать с толку, поэтому дайте мне знать, если у вас есть какие-либо вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...