Python 从聚合类别创建新列

Python 从聚合类别创建新列,python,pandas,aggregate,pandas-groupby,Python,Pandas,Aggregate,Pandas Groupby,我有一个数据框,看起来像: 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 我想汇总每个id的活动和关闭信

我有一个数据框,看起来像:

    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
我想汇总每个id的活动和关闭信用的数量,然后为
active\u credits
closed\u credits
创建一个新列,其中包含每个id对应的活动和关闭信用的数量。

您可以使用,这避免了建议的中间步骤:

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

你的预期产出是多少?我认为jpp的答案更好:)