首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandas -评分专栏

Pandas -评分专栏
EN

Stack Overflow用户
提问于 2020-02-28 00:16:54
回答 1查看 52关注 0票数 0

我有客户级别的产品销售数据(每个产品1列)(每个客户1行)。我正在评估哪些客户更有可能对特定的产品感兴趣。我列出了10种关联度最高的产品。(我为多个产品提供了这种方法,因此我正在尝试构建一种可伸缩的方法)。我试着根据他们购买了这10种产品中的多少来给所有客户打分。

假设我的列表是: prod_x_corr_prod

如何为每一行创建一个遍历10个相关列的记分列(比如prox_x_propensity),并为值>0的每一列添加1?

例如,如果客户Y购买了与产品X相关的产品中的3个,那么他在"prox_x_score“列中的得分将为3。

编辑:感谢大家的反馈。

对于客户5,我会得到2,而对于1,2,3,我会得到1。对于4,0。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-28 00:28:58

你可以这样做:df['prox_x_score'] = (df[prod_x_corr_prod] > 0).sum(axis=1)

使用虚拟数据的示例:

代码语言:javascript
复制
import numpy as np
import pandas as pd

prod_x_corr_prod = ["prod{}".format(i) for i in range(1, 11)]

df = pd.DataFrame({col:np.random.choice([0,1], size=5) for col in prod_x_corr_prod})

df['prox_x_score'] = (df[prod_x_corr_prod] > 0).sum(axis=1)

print(df)

输出:

代码语言:javascript
复制
   prod1  prod10  prod2  prod3  prod4  prod5  prod6  prod7  prod8  prod9  \
0      1       1      1      0      0      1      1      1      1      0   
1      1       1      1      0      1      0      0      1      1      0   
2      1       1      1      1      0      1      0      0      1      0   
3      0       0      0      0      0      0      1      0      1      0   
4      0       0      0      0      0      0      0      1      1      0   
   prox_x_score  
0             7  
1             6  
2             6  
3             2  
4             2  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60437486

复制
相关文章

相似问题

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