Как получить условную скользящую сумму за мультииндекс в пандах? - PullRequest
0 голосов
/ 01 июля 2019

У меня есть набор данных с индексом уровня 0 в качестве идентификатора клиента и индексом уровня 1 в качестве voucher_date.Моя колонка интереса - «приток», где я хочу, чтобы скользящая сумма последних 180 дат ваучера для каждого клиента.Однако я хочу это только в том случае, если столбец «original_voucher_date» меньше или равен максимальному индексу «voucher_date» в скользящей сумме.

Приведенный ниже код хорошо работает для получения скользящей суммы без каких-либо условий.

df_unpaid_c1_hmm_date_lvl1 = df_unpaid_c1_hmm_date.copy()
df_unpaid_c1_hmm_date_lvl1.index = df_unpaid_c1_hmm_date_lvl1.index.droplevel(0)
df_unpaid_c1_hmm_date_lvl1.groupby('customer_id').inflow.rolling('180D').sum().reset_index(level=0, drop=True)

Вот фиктивный набор данных: -

customer_id voucher_date    inflow          ori_voucher_date
1           2009-10-23      17000.0         2009-12-23
            2010-02-26      10000.0         2010-10-26
            2011-12-29      0.0             2011-02-29
            2012-03-31      0.0             2012-05-31
            2012-07-23      1000.0          2013-07-23
            2012-09-24      500.0           2012-11-24
            2012-10-19      15200.0         2012-10-19
            2012-10-30      1000.0          2012-12-30
            2012-12-25      0.0             2014-12-25
2           2013-01-15      0.0             2013-06-15
2           2013-02-22      20000.0         2013-05-22

И ожидаемый результат: -

customer_id voucher_date    inflow          ori_voucher_date  rollin
1           2009-10-23      17000.0         2009-12-23        0.0
            2010-02-26      10000.0         2010-10-26        17000
            2011-12-29      0.0             2011-02-29        0.0
            2012-03-31      0.0             2012-05-31        0.0
            2012-07-23      1000.0          2013-07-23        0.0
            2012-09-24      500.0           2012-11-24        0.0
            2012-10-19      15200.0         2012-10-19        15200
            2012-10-30      1000.0          2012-12-30        15200
            2012-12-25      0.0             2014-12-25        15700
2           2013-01-15      0.0             2013-06-15        0.0
2           2013-02-22      20000.0         2013-05-22        0.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...