фрейм данных:
ID spend month_diff
12 10 -5
12 10 -4
12 10 -3
12 10 1
12 10 -2
12 20 0
12 30 2
12 10 -1
Я хочу получить spend_total
на основе разницы в месяц для определенного идентификатора. month_diff
в отрицательном значении означает расходы, потраченные клиентом в прошлом году, и положительное в этом году Итак, я хочу сравнить расходы клиентов за прошлый год и этот год. Итак, условия следующие: Условия:
if month_diff >= -2 and < 0
затем совокупные расходы за отрицательные месяцы -> flag=pre
if month_diff > 0 and <=2
затем совокупные расходы за положительные месяцы -> flag=post
Примечание: нет. month_diff +ve
и -ve
не совпадают. может быть так, что у клиента было 4 транзакции в -ve month_diff
и только 2 транзакции в +ve
, поэтому я хочу взять только 2-месячную совокупную сумму -ve month_diff
и 2 для +ve
и не хочу учитывать потратить, где month_diff
равно 0.
Требуемый фрейм данных:
ID spend month_diff spend_tot flag
12 10 -2 20 pre
12 30 2 40 post
40 - совокупная сумма расходов для month_diff +1 и +2 (т.е. 10 + 30) и то же самое для month_diff -1 и -2 и его совокупные расходы равны 20 (т.е. 10 + 10