个人认为这个是最贴合‘函数’目的的解法

某店铺用户消费特征评分

https://www.nowcoder.com/practice/200c824e9ed4428491c27d65ec56067d

import pandas as pd 
df=pd.read_csv('sales.csv')
def func1(data,q1,q2,q3,ascending=True):
    score=0
    if ascending is True:
        if data<=q1:
            score=4
        elif data>q1 and data<=q2:
            score=3
        elif data>q2 and data<=q3:
            score=2
        elif data>q3:
            score=1
        else:
            score=0
    else:
        if data<=q1:
            score=1
        elif data>q1 and data<=q2:
            score=2
        elif data>q2 and data<=q3:
            score=3
        elif data>q3:
            score=4
        else:
            score=0
    return score 

recency_q1=df['recency'].quantile(0.25)
recency_q2=df['recency'].quantile(0.5)
recency_q3=df['recency'].quantile(0.75)

frequency_q1=df['frequency'].quantile(0.25)
frequency_q2=df['frequency'].quantile(0.5)
frequency_q3=df['frequency'].quantile(0.75)

monetary_q1=df['monetary'].quantile(0.25)
monetary_q2=df['monetary'].quantile(0.5)
monetary_q3=df['monetary'].quantile(0.75)

df['R_Quartile']=df['recency'].apply(lambda x: func1(x,recency_q1,recency_q2,recency_q3))
df['F_Quartile']=df['frequency'].apply(lambda x: func1(x,frequency_q1,frequency_q2,frequency_q3,ascending=False))
df['M_Quartile']=df['monetary'].apply(lambda x: func1(x,monetary_q1,monetary_q2,monetary_q3,ascending=False))
print(df.head(5))

全部评论

相关推荐

2025-12-15 12:50
河北工程大学
sta666:我也是这个国际商业化的,三天,一天一面,就通过了,不过我是后端实习生,好好面感觉能过。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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