Как создать новые столбцы в сгруппированном DataFrame? - PullRequest
0 голосов
/ 06 января 2019

У меня есть DataFrame, сгруппированный по категориям. Например, у меня есть df

df[['APP_NO', 'REPAY_METHOD', 'RESIDUAL_DEBT']] \
.groupby(['APP_NO', 'REPAY_METHOD']).agg({'RESIDUAL_DEBT' : 'sum'}) 

ID   NUM  CAT_FEAT   aggr  
1   123   2         1233
2   234   2         6631
3   576   -1        -491
4   987   0         5461

NUM - уникальный идентификатор

В результате я хочу получить следующий daraframe:

ID   NUM  CAT_FEAT   aggr_CF2   aggr_CF0   aggr_CFm1   
1   123   2         1233           -1          -1
2   234   2         6631           -1          -1
3   576   -1          -1           -1          -491
4   987   0           -1           5461        -1

То есть для каждого NUM получить тег aggr со всеми значениями CAT_FEAT

Если NUM не имеет значения из CAT_FEAT, заменить его на -1

Вопрос в том, как это реализовать наиболее правильно. Текущий df уже сгруппирован по NUM. У меня есть DataFrame, без группировок. Возможно я изначально не правильно мыслил.

1 Ответ

0 голосов
/ 07 января 2019

Это был просто пример. Вот реальные данные:

ID.  APP_NO REPAY_METHOD    RESIDUAL_DEBT
0   755356650   0.0              0.00
1   756347150   2.0            20490.53
2   756927070   -1.0             0.00
3   757031330   2.0              0.00
4   757233210   2.0              0.00

И я хочу получить следующее

ID.  APP_NO RESIDUAL_DEBT_RM0  RESIDUAL_DEBT_RM2  RESIDUAL_DEBT_RMm1
0   755356650   0.0              -1                        -1
1   756347150   -1             20490.53                    -1
2   756927070   -1               -1                         0
3   757031330   -1                0                        -1
4   757233210   -1                0                        -1

RESIDUAL_DEBT_RM0 - функция, в которой REPAY_METHOD = 0 e.t.c Для каждой функции APP_NO со всеми значениями REPAY_METHOD Если APP_NO не имеет значения из REPAY_METHOD, то замените его на -1

У меня есть данные, где APP_NO повторяется. Основная задача - сгруппировать данные по APP_NO и каждому категориальному признаку, чтобы получить агрегированные признаки

...