题解 | #筛选某店铺最有价值用户中消费最多前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))