Python 根据RFM分数细分客户并创建数据框架
我对一个采购历史数据进行了RFM分析 根据RFM类别,我对客户进行了细分,因为我的一些客户属于多个类别,所以我必须将客户细分为他们所属的类别,并添加到RFM表中(添加一个单独的列“segment”) CardNo最近频率货币R_四分位数F_四分位数M_四分位数RFMClass段 除了要添加到rfm表中的“segment”列之外,我的rfmtable列与上面的列类似 到目前为止,我所做的是Python 根据RFM分数细分客户并创建数据框架,python,python-3.x,pandas,list,dataframe,Python,Python 3.x,Pandas,List,Dataframe,我对一个采购历史数据进行了RFM分析 根据RFM类别,我对客户进行了细分,因为我的一些客户属于多个类别,所以我必须将客户细分为他们所属的类别,并添加到RFM表中(添加一个单独的列“segment”) CardNo最近频率货币R_四分位数F_四分位数M_四分位数RFMClass段 除了要添加到rfm表中的“segment”列之外,我的rfmtable列与上面的列类似 到目前为止,我所做的是 for card_no in rfmSegmentation['CardNo']: > for
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文件
任何帮助都将不胜感激这实际上是一个
pandas
和dataframe
问题,与机器学习无关(标签已移除);还可以考虑改变标题来描述实际问题………………你能用期望的输出发布你的数据的例子吗?请不要使用图片。您可以使用应用功能进行此操作。
> 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