Python中有两个周期的Pandas Dataframe的转换矩阵

xriantvc  于 2023-03-28  发布在  Python
关注(0)|答案(1)|浏览(106)

我有一个数据集,显示客户的付款信息,为他们的部门。每个客户有两个时期的数据。

CUST_ID PERIOD  Delinquency Value
100729    1              1
100729    2              3
100888    1              2
100888    2              1
137300    1              0
137300    2              1

我需要计算从第1期到第2期的拖欠值之间的转换比率,并创建一个存储此矩阵的表

Expected output is:

    0   1   2   3
0   0   1   0   0
1   0   0   0   1
2   0   1   0   0
3   0   0   0   0
s3fp2yjn

s3fp2yjn1#

可以使用pivotcrosstab

tmp = df.pivot(index='CUST_ID', columns='PERIOD', values='Delinquency Value')
M = df['Delinquency Value'].max()+1

out = (pd.crosstab(tmp[1], tmp[2])
         .reindex(index=range(M), columns=range(M), fill_value=0)
       )

print(out.rename_axis(index=None, columns=None))

输出:

0  1  2  3
0  0  1  0  0
1  0  0  0  1
2  0  1  0  0
3  0  0  0  0

相关问题