2017-08-25 60 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