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

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

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

import sys

for line in sys.stdin:
    a = line.split()
    print(int(a[0]) + int(a[1]))

import pandas as pd 
df=pd.read_csv('sales.csv')
#计算RFM值
df['R_Quartile']=pd.qcut(df['recency'],4,['4','3','2','1']).astype('str')
df['F_Quartile'] = pd.qcut(df['frequency'],4,["1", "2", "3", "4"]).astype("str")
df['M_Quartile'] = pd.qcut(df['monetary'],4,["1", "2", "3", "4"]).astype("str")

df['RFMClass']=df['R_Quartile']+df['F_Quartile']+df['M_Quartile'] #字符串拼接

#或者
'''
df['rec_score'] = pd.qcut(df['recency'],[0,0.25,0.5,0.75,1],labels=['4','3','2','1']).astype('str')

df['fre_score'] = pd.qcut(df['frequency'],[0,0.25,0.5,0.75,1],labels=['1','2','3','4']).astype('str')

df['mon_score'] = pd.qcut(df['monetary'],[0,0.25,0.5,0.75,1],labels=['1','2','3','4']).astype('str')
'''

a=df[['user_id','recency','frequency','monetary','RFMClass']]  #取出这几列
print(a.head().reset_index(drop=True))                          #取前5行,重置索引,删掉原索引形成的数据
print('\n') #空行
print(a[a['RFMClass']=='444'].sort_values('monetary',ascending=False).head().reset_index(drop=True))

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务