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

全部评论

相关推荐

04-10 11:56
如皋中学 Java
高斯林的信徒:双c9能简历挂的?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务