题解 | #筛选某店铺最有价值用户中消费最多前5名#
筛选某店铺最有价值用户中消费最多前5名
https://www.nowcoder.com/practice/58655010a7c34e9fb2b7b491c3f79ca4
import sys import pandas as pd import numpy as np df = pd.read_csv('sales.csv') R = df['recency'].apply(lambda x: 4 if x <= df['recency'].quantile(0.25) else (3 if x > df['recency'].quantile(0.25) and x <= df['recency'].quantile(0.5) else (2 if x > df['recency'].quantile(0.5) and x <= df['recency'].quantile(0.75) else 1))).astype(str) F = df['frequency'].apply(lambda x: 4 if x > df['frequency'].quantile(0.75) else (3 if x >= df['frequency'].quantile(0.5) and x < df['frequency'].quantile(0.75) else (2 if x >= df['frequency'].quantile(0.25) and x < df['frequency'].quantile(0.5) else 1))).astype(str) M = df['monetary'].apply(lambda x: 4 if x > df['monetary'].quantile(0.75) else (3 if x >= df['monetary'].quantile(0.5) and x < df['monetary'].quantile(0.75) else (2 if x >= df['monetary'].quantile(0.25) and x < df['monetary'].quantile(0.5) else 1))).astype(str) df['RFMClass'] = R + F + M print(df.head(5)) print('\n') print(df.query("RFMClass == '444'").sort_values(by = 'monetary', ascending = False).head(5)) for line in sys.stdin: a = line.split() print(int(a[0]) + int(a[1]))