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

全部评论

相关推荐

09-01 09:00
已编辑
四川旅游学院 运营
牛客55195891...:主要是专业不好,别的没毛病
牛客解忧铺
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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