2017-08-25 27 views
1

我尝试侦测贷款水平数据集(如下所示)多次借款:如何从贷款水平数据生成同期贷款清单?

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一样向同一客户借款。 对于分支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) 

Desired output

我假设我将需要(ⅰ)产生一个长数据集,对于每笔贷款,列出所有同期贷款及其各自的分支机构,然后(ii)重塑。我主要与(i)斗争,特别是因为我的数据集非常大,我需要一个有效的解决方案。

非常感谢!

回答

0

让我们用get_dummiesadd_prefixassign

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 
+0

谢谢,这个即将关闭!不幸的是,它并没有完全达到我以后的输出。我怀疑我正在寻找的代码以某种方式利用条件maturity_month_i> = maturity_month_j> start_month_i。任何进一步的帮助将不胜感激。 – Ruth

+0

@Ruth Ruth可以在你的问题中包括你对这个样本输出的期望值。它是一个新的数据框,列表,元组以及基于这个示例数据的内容是什么。 –

+0

Scott,我在等待第二个示例代码中的新数据框。我现在添加了一张照片(希望的输出链接),希望能让它更清晰。谢谢! – Ruth