Когда я агрегирую с использованием group_by в пандах, как мне сохранить значение переменной, которая имеет одинаковое значение по всей записи? - PullRequest
0 голосов
/ 03 октября 2019

Я застрял с 2 проблемами. Проблема в том, что у меня есть несколько записей о транзакциях клиента, которых я пытаюсь объединить

CUstID  cat_var  VisitDate
123     abc      09/09/2019
123     abc      01/01/2015
123     abc      02/01/2013
123     abc      02/01/2016
123     abc      08/01/2017
345     gcf      09/01/2015
345     gcf      09/02/2018

Мне нужно объединить записи и попытаться зафиксировать самое последнее посещение до сентября 2017 года каждого клиента, которое я сделалпо группам и вычислению VisitDate.max ()

  1. Теперь мне нужно создать новую переменную в новом фрейме данных, которая записывает «ДА», если клиент посетил в течение ровно 2 лет после егопоследний самый последний визит в 2017 году. Я пробовал forloop, но так как у меня 1 миллион записей, это занимает много времени. Есть ли эффективный способ сделать это?

  2. Когда я собираю значение, мне нужно показать значение в cat_var. Поскольку он остается неизменным для всего клиента, мне просто нужно показать значение. Так как мне это сделать при использовании group_by? Мой вывод должен выглядеть следующим образом:

CustID   cat_var   RecentVisit_till2017    Returned_afterThat
123       abc       08/01/2017                No (Since he did not return within 08/01/2019)
345       gcf       09/01/2015                No (Since one day late)

Пожалуйста, помогите мне с любым предложением или подсказкой. Заранее спасибо

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