我有一个数据集,每个贷款都有一行,一个借款人可以有多个贷款。'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) 发布于 2017-06-17 16:49:52
你可以在按借款人分组后的属性上使用转换。因为'Y‘的ASCII代码大于'N’,所以如果借款人有任何属性是'Y‘,max(属性)会给出'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 Nhttps://stackoverflow.com/questions/44602479
复制相似问题