题解 | #某店铺用户消费特征评分#
某店铺用户消费特征评分
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道真题和解析
