随着互联网新技术的不断发展,人工智能技术正改变着传统的销售岗位。
提到销售,大家脑海里总能想起他们不断接打电话,接触拜访客户的样子。
而每一位职业销售在通往高薪的路上,背后都是不断拓展客户的苦与泪。
尤其是销售员在探寻客户的路上,同时还要兼顾统计营业额,统计各产品销量,绘制图表,以便调整销售策略。
如此多的工作仅凭人工从有限的时间里很难完成。
因此,大部分销售员都长时间处于加班的状态。
为了大幅降低销售人员日常的工作压力,
如何洞悉市场规律,与竞争对手比较分析产品优势,分析客户需求,更精准地抓住客户人群,成为了销售工作重要的一部分。
而互联网新技术的演进,让销售可以利用python来完成一些重复性较高的工作,用更多的时间来提高企业的销售效率和销售业绩。
今天向大家介绍的RFM模型是衡量客户价值和客户创利能力的重要工具和手段。
而且RFM模型不难,是一个人人都可以上手的模型,
运用范围很广泛,运营、销售、市场等都可以在工作中使用到。
在众多的客户关系管理(CRM)的分析模式中,RFM模型是被广泛提到的。
该机械模型通过一个客户的近期购买行为、购买的总体频率以及花了多少钱这3项指标来描述该客户的价值状况。
通过这样的划分,RFM模型能够帮助我们评估客户已有价值和用户潜在价值,从而能够更准确地将成本和精力花在更精确的用户层次身上。
R(Recency):最近一次消费与上一次消费的时间差,R值越大,说明用户上一次交易的时间越久远,也证实了用户与产品亲密度的下降。
F(Frequency):消费频率,可以理解为某一时间段内的消费次数,具体的时间段需要依据产品特性而定,F值越大,说明用户活跃度越高,是个正向反馈。
M(Monetary):消费金额,用户在某一时间段内的消费总金额,M值越大,说明用户带来的价值越大。
基于以上RFM的值,我们简单地按照大小高低来划分,可以分为8类用户群体。
建立RFM模型的主要思路一般分为
1.清洗数据
2.提取指标数据
3.设立RFM指标并进行计算
4.绘制饼状图展示结果
这里为大家展示一下代码,大家可以根据代码自己试着建立rfm模型。
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
#读取文件
data= pd.read_csv('./dataset.csv')
data.head()#查看数据
#清洗数据
data['ShipDate'] = pd.to_datetime(data['ShipDate'])#将类型转换为时间
data['OrderDate'] = pd.to_datetime(data['OrderDate'])
data.drop(index=data[data['ShipDate']<data['OrderDate']].index, inplace=True)#删去发货时间早于订单时间,即错误数据
data.drop(index=data[data.RowID.duplicated()].index, inplace=True)#删去重复数据
data['ShipMode'].fillna(value=data.ShipMode.mode()[0], inplace=True)#填充空值
#分别取出订单日期的年、月、季
data['Order-year'] = data ['OrderDate'].dt.year
data ['Order-month'] = data ['OrderDate'].dt.month
data ['quarter'] = data ['OrderDate'].dt.to_period('Q')
# 设置字体
mpl.rcParams['font.sans-serif'] = ['SimHei']#避免中文乱码
#RFM
# 取出订单日期为2014年的数据
data_14 = data[data['Order-year'] == 2014]
data_14 = data_14[['CustomerID', 'OrderDate', 'Sales']]
# 重新复制给customdf
customdf = data_14.copy()
customdf.set_index('CustomerID', drop=True, inplace=True)
customdf['orders'] = 1
# rfm透视图
rfmdf = customdf.pivot_table(index=['CustomerID'],
values=['OrderDate', 'orders', 'Sales'],
aggfunc={'OrderDate': 'max',
'orders': 'sum',
'Sales': 'sum'})
rfmdf['R'] = (rfmdf.OrderDate.max() - rfmdf.OrderDate).dt.days
rfmdf.rename(columns={'Sales': 'M', 'orders': 'F'}, inplace=True)
def show(df):
return df - df.mean()
result1 = rfmdf[['R', 'F', 'M']].apply(lambda x: x - x.mean())
def rfm_func(x):
level = x.apply(lambda x: "1" if x >= 0 else '0')#判断RFM值
label = level.R + level.F + level.M#拼接结果
d = {
'011': '重要价值客户',
'111': '重要唤回客户',
'001': '重要深耕客户',
'101': '重要挽留客户',
'010': '潜力客户',
'110': '一般维持客户',
'000': '新客户',
'100': '流失客户'
}
result = d[label]
return result
result1 = rfmdf[['R', 'F', 'M']].apply(lambda x: x - x.mean())
result2 = result1.apply(rfm_func, axis=1)
rfmdf['lables'] = result2
rfmdf['lables'].value_counts().plot(kind='pie',title = 'RFM分析')
plt.show()
在建立好RFM模型后,大家就可以对用户进行分层,
从而对用户价值有个更直观的感受,进一步分析客户的价值,采取应对的策略提高销售业绩。
﹀
﹀
﹀
以上就是这周的干货分享,如果想继续看干货,
还想让大佬们输出更多技巧
赶快关[飞吻]注并转[求抱抱]发我们吧。
点击“关[飞吻]注”,即可第一时间阅读每周干货哦!
如若转载,请注明出处:https://www.sumedu.com/faq/218302.html