У меня есть dataframe выглядит так:
SK_ID_CURR CREDIT_ACTIVE
0 215354 Closed
1 215354 Active
2 215354 Active
3 215354 Active
4 215354 Active
5 215354 Active
6 215354 Active
7 162297 Closed
8 162297 Closed
9 162297 Active
Я хотел бы объединить количество активных и закрытых кредитов для каждого идентификатора, а затем создать новый столбец для Active_credits
, Closed_credits
с количеством соответствующих активных и закрытых кредитов для каждого идентификатора.
Вы можете использовать pandas.crosstab
, который избегает предлагаемого промежуточного шага:
res = pd.crosstab(df['SK_ID_CURR'], df['CREDIT_ACTIVE'])
print(res)
CREDIT_ACTIVE Active Closed
SK_ID_CURR
162297 1 2
215354 6 1
Вы можете добиться этого, используя pd.DataFrame.groupby
df1.groupby(['SK_ID_CURR','CREDIT_ACTIVE']).size()
Выход:
SK_ID_CURR CREDIT_ACTIVE
162297 Active 1
Closed 2
215354 Active 6
Closed 1