#python #pandas
#python #pandas
Вопрос:
Чтобы уменьшить сложность, я переработал весь пост:
Итак, чего я хочу добиться: для списка кампаний с заданными датами начала и окончания я хочу вернуть предыдущую кампанию. Предыдущая означает, что кампания начинается после дня окончания предыдущей. Однако, если есть несколько предыдущих кампаний, я хочу вернуть кампанию с тем же типом. Это должно быть сделано для каждой кампании, которая у меня есть (как правило, у меня будут сгруппированные данные (подумайте о парах элементов / кампаний, где в одной кампании есть несколько элементов, и меня интересует предыдущая кампания для одного элемента)
Рассмотрим следующие данные
Campaign | StartDay | EndDay | Type
---------|----------|--------|------
1 | 1 | 10 | 1
2 | 5 | 15 | 1
3 | 7 | 15 | 2
4 | 11 | 20 | 1
5 | 16 | 25 | 2
Итак, в этом случае желаемый результат выглядит следующим образом
Campaign | PreviousCampaign
---------|-----------------
1 | NAN
2 | NAN
3 | NAN
4 | 1
5 | 3
Если первые записи исчезают, все в порядке. Обратите внимание, что предшественник 5 равен 3 из-за условия типа.
Я могу сделать это, объединив таблицу с помощью campaign, запросив правильные строки и несколько шагов, чтобы убедиться, что тип costraint удовлетворен. Без ограничения типа type это немного проще.
Однако, изучая «современные панды» тома Аугспургера, у меня такое чувство, что поворот, укладка, плавление или комбинация должны работать. Но я еще не понял, как это сделать.
Комментарии:
1. Можете ли вы показать желаемый результат?
2. обновил его и немного изменил пример для элемента 2
3. Желаемый результат помогает, но по-прежнему сложно следовать желаемой логике. Является ли «эталонная кампания» тем, что вы хотите в столбце «NextCampaign»? Это может быть понятнее, если вы можете объяснить, почему вы хотите это сделать.
4. эй, я переписал и сократил пример. Я надеюсь, что теперь он больше сосредоточен на основных частях
5. Намного понятнее. Но что должно произойти, если есть две предыдущие кампании с тем же типом?