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))