首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pandas -创建包含聚合结果的列

Pandas -创建包含聚合结果的列
EN

Stack Overflow用户
提问于 2017-06-17 16:36:09
回答 1查看 43关注 0票数 0

我有一个数据集,每个贷款都有一行,一个借款人可以有多个贷款。'Property‘标志显示贷款背后是否有任何担保。我尝试在借款人级别上聚合此标志,因此对于每个借款人,如果其中一个属性标志是'Y',我想为每个借款人添加一个额外的列,其中它是'Y‘。

下面的简短示例显示了最终结果应该是什么样子。任何帮助都将不胜感激。

代码语言:javascript
运行
复制
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) 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-17 16:49:52

你可以在按借款人分组后的属性上使用转换。因为'Y‘的ASCII代码大于'N’,所以如果借款人有任何属性是'Y‘,max(属性)会给出'Y’。

代码语言:javascript
运行
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44602479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档