题解 | #筛选某店铺最有价值用户中消费最多前5名#

筛选某店铺最有价值用户中消费最多前5名

https://www.nowcoder.com/practice/58655010a7c34e9fb2b7b491c3f79ca4

import pandas as pd 
df=pd.read_csv('sales.csv',sep=',')
def get_score(x,df,col,is_ascending=True):
   a= df[col].quantile(0.25)
   b=df[col].median()
   c=df[col].quantile(0.75)
   if is_ascending==True:
        if x<=a:
            return('1')
        if a<x<=b:
            return('2')
        if b<x<=c:
            return('3')
        if x>c:
            return('4')
   else:
        if x<=a:
            return('4')
        if a<x<=b:
            return('3')
        if b<x<=c:
            return('2')
        if x>c:
            return('1')  
df['R']=df['recency'].map(lambda x:get_score(x,df,'recency',False))
df['F']=df['frequency'].map(lambda x:get_score(x,df,'frequency',True))
df['M']=df['monetary'].map(lambda x:get_score(x,df,'monetary',True))
df['RFMClass']=df['R']+df['F']+df['M']
u=df[['user_id','recency','frequency','monetary','RFMClass']]
w=df[df['RFMClass']=='444'].sort_values(by='monetary',ascending=False)
print(u.head(5),'\n','\n',w.head(5))

全部评论

相关推荐

SHC2:春招先狠狠投递,然后你看看能不能申请香港新加坡的一年制master,花不了多少钱,或者现在赶紧去刷一段实习。HR专业考研没必要
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务