题解 | #某店铺用户消费特征评分#

某店铺用户消费特征评分

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

import pandas as pd

df = pd.read_csv("sales.csv", sep=",")

pd.set_option("display.width", 300)  # 设置字符显示宽度
pd.set_option("display.max_rows", None)  # 设置显示最大行
pd.set_option("display.max_columns", None)


def quantile1(col): #Recency, 放入df而不要是series
    q1=col.quantile(0.25)
    q2=col.quantile(0.5)
    q3=col.quantile(0.75)
    max=col.max()
    
    col=pd.cut(col,bins=[0,q1,q2,q3,max],include_lowest=True,labels=[4,3,2,1])
    return col

def quantile2(col): #Frequancy, Monetary
    q1=col.quantile(0.25)
    q2=col.quantile(0.5)
    q3=col.quantile(0.75)
    max=col.max()
    
    col=pd.cut(col,bins=[0,q1,q2,q3,max],include_lowest=True,labels=[1,2,3,4])
    return col

df['R_Quartile']=quantile1(df['recency']) 
df['F_Quartile']=quantile2(df['frequency']) 
df['M_Quartile']=quantile2(df['monetary']) 


#方法2

df['R_Quartile']=pd.qcut(df.recency,[0,0.25,0.5,0.75,1],['4','3','2','1']).astype(int)
df['F_Quartile']=pd.qcut(df.recency,[0,0.25,0.5,0.75,1],['1','2','3','4']).astype(int)
df['M_Quartile']=pd.qcut(df.recency,[0,0.25,0.5,0.75,1],['1','2','3','4']).astype(int)

print(df.head(5))


全部评论

相关推荐

活泼的代码渣渣在泡池...:哈哈哈挺好的,我也上岸美团了,不说了,我又接了一单
点赞 评论 收藏
分享
12-06 16:17
济宁学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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