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