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

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

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

import pandas as pd
df=pd.read_csv('sales.csv',sep=',')

r1=df['recency'].quantile(0.25)
r2=df['recency'].quantile(0.5)
r3=df['recency'].quantile(0.75)

f1=df['frequency'].quantile(0.25)
f2=df['frequency'].quantile(0.5)
f3=df['frequency'].quantile(0.75)

m1=df['monetary'].quantile(0.25)
m2=df['monetary'].quantile(0.5)
m3=df['monetary'].quantile(0.75)

df['r']=df.apply(lambda x:4 if x.recency<=r1 else (3 if x.recency>r1 and x.recency<=r2 else (2 if x.recency>r2 and x.recency<=r3 else 1)),axis=1)

df['f']=df.apply(lambda x:1 if x.frequency<=r1 else (2 if x.frequency>r1 and x.frequency<=r2 else (3 if x.frequency>r2 and x.frequency<=r3 else 4)),axis=1)

df['m']=df.apply(lambda x:1 if x.monetary<=r1 else (2 if x.monetary>r1 and x.monetary<=r2 else (3 if x.monetary>r2 and x.monetary<=r3 else 4)),axis=1)

df['RFMClass']=df['r'].map(str)+df['f'].map(str)+df['m'].map(str)

df1=df
df=df.drop(columns=['r','f','m'],axis=1)

print(df[:5].to_string())
print('')

df1=df1[df1['RFMClass']=='444']
df1=df1.sort_values(by=['monetary'],ascending=True).reset_index(drop=True)
print(df1[:5])

全部评论

相关推荐

09-30 15:27
已编辑
成都工业学院 企业文化
Morpheus_:候选人:还需要测验武力值?
投递腾讯等公司10个岗位
点赞 评论 收藏
分享
叁六玖:不买课还想秋招
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务