# 测试数据 sales = pd.DataFrame({'user_id':['NC0008','NC0018','NC0021','NC0035','NC0036'],'recency':[186,19,151,8,262],'frequency':[5,13,3,4,2],'monetary':[2990,3648,629,4542,896]}) # 代码输出 sales['R_Quartile'] = pd.qcut(sales['recency'], [0, 0.25, 0.5, 0.75, 1],["4", "3", "2", "1"]) sales['F_Quartile'] = pd.qcut(sales['frequency'], [0, 0.25, 0.5, 0.75, 1],["1", "2", "3", "4"]) sales['M_Quartile'] = pd.qcut(sales['monetary'], [0, 0.25, 0.5, 0.75, 1],["1", "2", "3", "4"]) sales['RFMClass'] = sales[['R_Quartile', 'F_Quartile', 'M_Quartile']].apply(lambda x: ''.join(x), axis=1) sales = sales[['user_id', 'recency', 'frequency', 'monetary', 'RFMClass']] print(sales.head()) print() sort_sales = sales[sales['RFMClass'] == '444'].sort_values('monetary',ascending=False) print(sort_sales.head())