2017-06-17 108 views
0

我有一個數據集,每個貸款都有一行,借款人可以有多個貸款。 'Property'標誌顯示貸款是否有任何安全性。我試圖在借款人層面彙總此標誌,因此對於每個借款人,如果其中一個財產標誌是'Y',我想爲每個借款人添加一個額外的列,其中'Y'爲'。熊貓 - 創建聚合結果列

下面的簡短示例顯示了最終結果應該是什麼樣子。任何幫助,將不勝感激。

import pandas as pd 

data = {'Borrower': [1,2,2,2,3,3,4,5,6,6], 
     'Loan' : [1,2,3,4,5,6,7,8,9,10], 
     'Property': ["Y","N","Y","Y","N","Y","N","Y","N","N"], 
     'Result': ['Y','Y','Y','Y','Y','Y','N','Y','N','N']} 

df = pd.DataFrame.from_dict(data) 

回答

0

您可以在groupby借款人之後使用屬性上的轉換。由於'Y'的ASCII代碼大於'N',因此如果借款人有任何屬性爲'Y',max(Property)將給出'Y'。

df['Result2'] = df.groupby('Borrower')['Property'].transform(max) 

df 
Out[202]: 
    Borrower Loan Property Result Result2 
0   1  1  Y  Y  Y 
1   2  2  N  Y  Y 
2   2  3  Y  Y  Y 
3   2  4  Y  Y  Y 
4   3  5  N  Y  Y 
5   3  6  Y  Y  Y 
6   4  7  N  N  N 
7   5  8  Y  Y  Y 
8   6  9  N  N  N 
9   6 10  N  N  N 
+0

非常感謝! – Jelmerd