我正在尝试检测贷款级别数据集中的多次借用,如下所示:
d = {'start_month': [1,2,4,1,14],
'customer': ['A','A','A','C','C'],
'branch': [1,2,3,2,1],
'maturity_month': [13,14,16,13,26]}
df = pd.DataFrame(data=d)
我想将这些数据重新整理到一个月/分支面板中,该面板为每个分支i指示分支j当前也与分支i一起借给同一客户。 对于分支i,在某个月借给与分支j相同的客户被定义为maturity_month_i> = maturity_month_j> start_month_i
d2 = {'start_month': [1,1,2,4,14],
'branch': [1,2,2,3,1],
'contemp_branch1':[0,0,1,1,0],
'contemp_branch2':[0,0,0,1,0],
'contemp_branch3':[0,0,0,0,0]}
df2 = pd.DataFrame(data=d2)
我假设我需要(i)生成一个长数据集,对于每笔贷款,列出所有同期贷款及其各自的分支,然后(ii)重塑。我主要与(i)斗争,特别是因为我的数据集非常大,我需要一个有效的解决方案。
非常感谢!
答案 0 :(得分:0)
让我们使用get_dummies
,add_prefix
和assign
:
df[['branch','start_month']].assign(**df.branch.astype(str).str.get_dummies()
.add_prefix('contemp_branch'))
输出:
branch start_month contemp_branch1 contemp_branch2 contemp_branch3
0 1 1 1 0 0
1 2 2 0 1 0
2 3 4 0 0 1
3 2 1 0 1 0
4 1 14 1 0 0