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

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

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

import pandas as pd

sales = pd.read_csv("sales.csv")
quant = sales[["recency", "frequency", "monetary"]].quantile([0.25, 0.5, 0.75])


def apply_score(x, col):
    if x <= quant[col][0.25]:
        score = 4
    elif x <= quant[col][0.5]:
        score = 3
    elif x <= quant[col][0.75]:
        score = 2
    else:
        score = 1
    return score


sales["R_Quartile"] = sales["recency"].map(lambda x: apply_score(x, "recency"))
sales["F_Quartile"] = sales["frequency"].map(lambda x: apply_score(x, "frequency"))
sales["M_Quartile"] = sales["monetary"].map(lambda x: apply_score(x, "monetary"))
sales["RFMClass"] = (
    sales["R_Quartile"].astype(str)
    + sales["F_Quartile"].astype(str)
    + sales["M_Quartile"].astype(str)
)
pd.set_option("display.max_columns", None)
pd.set_option("display.max_rows", None)
pd.set_option("display.width", 300)
sales = sales.drop(["R_Quartile", "F_Quartile", "M_Quartile"], axis=1)
print(sales.head(5))
print("\n")
result = sales[sales["RFMClass"] == "444"].sort_values(by="monetary", ascending=False)
result.index = range(len(result))
print(result.head(5))

全部评论

相关推荐

LuvSran:是人我吃。老师就是学校呆久了,就业方面啥都不懂,还自以为是为了我们就业好。我学校就一破双非,计科入行率10%都没有,某老师还天天点名,说是出勤率抬头率前排率高了,华为什么的大厂就会来,我们就是不好好上课才没有厂来招。太搞笑了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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