сегментируйте клиентов на основе оценки RFM и создавайте панды DataFrame - PullRequest
0 голосов
/ 31 августа 2018

Я провел RFM-анализ данных истории покупок. enter image description here

на основе класса RFM я сегментировал клиентов, поскольку некоторым моим клиентам, принадлежащим к нескольким категориям, приходится сегментировать клиентов по их принадлежащему классу и добавлять в мою таблицу rfm (добавляя отдельный столбец «сегмент»)

CardNo Recency Frequency Денежный R_Quartile F_Quartile M_Quartile RFMClass Сегмент

мои столбцы rfmtable выглядят так, как указано выше, за исключением столбца 'сегмент' - который я хочу добавить в таблицу rfm

то, что я сделал до сих пор, это

for card_no in rfmSegmentation['CardNo']:
>     for num in rfmSegmentation['RFMClass']:
>         num = str(num)
>         if int(num[0])==1 and int(num[1])==1 and int(num[2])==1:
>             print("RFM_class",num,"cardno",card_no,"Best Customer")
>         elif int(num[1])==1:
>             print("RFM_class",num,"cardno",card_no,"Loyal Customer")
>         elif int(num[2])==1:
>             print("RFM_class",num,"cardno",card_no,"Big Spender")
>         elif int(num[0])==3 and int(num[1])==1 and int(num[2])==1:  
>             print("RFM_class",num,"cardno",card_no,"Almost Lost")        
>         elif int(num[0])==4 and int(num[1])==1 and int(num[2])==1:   
>             print("RFM_class",num,"cardno",card_no,"Lost Customer")
>         elif int(num[0])==4 and int(num[1])==4 and int(num[2])==4:  
>             print("RFM_class",num,"cardno",card_no,"Lost Cheap Customer")

он печатает сегмент каждого клиента, но я хочу добавить его как отдельный столбец в rfmtable и преобразовать его в файл csv

любая помощь будет оценена

1 Ответ

0 голосов
/ 31 августа 2018
 > I think I found a solution
    > 
    > segment = []
    > 
    >  for row in rfmSegmentation['RFMClass']:
    >     row = str(row)
    >     if int(row[0])==1 and int(row[1])==1 and int(row[2])==1:
    >         segment.append('Best Customer')
    >     elif int(row[1])==1:
    >         segment.append('Loyal Customer')
    >     elif int(row[2])==1:
    >         segment.append('Big Spender')
    >     elif int(row[0])==3 and int(row[1])==1 and int(row[2])==1:
    >         segment.append('Almost Lost')
    >     elif int(row[0])==4 and int(row[1])==1 and int(row[2])==1: 
    >         segment.append('Lost Customer')
    >     elif int(row[0])==4 and int(row[1])==4 and int(row[2])==4:
    >         segment.append('Lost Cheap Customer')
    >     else:
    >         segment.append('Failed')
    >         
    >  rfmSegmentation['segment'] = segment 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...