Я использую фрейм данных транзакций по кредитным картам со следующими столбцами:
timestamp, transaction_id, buyer_id, status
Я не хочу создавать новый столбец q_app_1d
, который рассчитывается для каждого transaction_id
, количество предыдущих transaction_id
в зависимости от условия (такое же buyer_id
, status = 1
, разница между timestamp
s <= 1 день). </p>
Я пробовал делать это, используя само- join (то есть соединение фрейма данных с самим собой), но не удалось этого сделать. Я знаю, как это легко сделать в SQL, но я не могу заставить его работать с Pandas.
Любая помощь или советы приветствуются!
Изменить:
Пример ввода:
timestamp, transaction_id, buyer_id, status
01/01/2020 00:00:00, 1, abc123, 1
01/01/2020 00:25:00, 2, abc123, 1
01/01/2020 00:30:00, 3, abc123, 1
01/01/2020 00:45:00, 4, def456, 1
02/01/2020 08:55:00, 5, abc123, 1
02/01/2020 10:55:00, 6, def456, 1
03/01/2020 12:55:00, 7, def456, 1
Пример вывода:
timestamp, transaction_id, buyer_id, status, q_app_1d
01/01/2020 00:00:00, 1, abc123, 1, 0
01/01/2020 00:25:00, 2, abc123, 1, 1 #(considers transaction_id 1)
01/01/2020 00:30:00, 3, abc123, 1, 2 #(considers transaction_id 1,2)
01/01/2020 00:45:00, 4, def456, 1, 0
02/01/2020 08:55:00, 5, abc123, 1, 0 #(more than one day since transaction_id 3)
02/01/2020 10:55:00, 6, def456, 1, 0 #(more than one day since transaction_id 4)
03/01/2020 08:55:00, 7, def456, 1, 1 #(considers transaction_id 6)