美团差评数据分析,python代码实现

明确问题

美团骑手出现差评的原因是什么?影响因素是哪些?并给出改善方案。(骑手姓名重复默认为同一个骑手;同一个骑手可能在不同站点出现差评)
数据时间:无;数据地点:站点A-E;核心业务指标:顾客配送评分;比较对象:差评订单信息记录。

理解数据

序号:差评订单序号;
站点名称:站点A-F,查找发现美团站点就是美团商家。
骑手名称:骑手姓名;
顾客配送评分:顾客对配送订单的打分;
顾客配送评价标签:顾客针对配送订单选择的评价标签;
顾客评价内容:顾客手动填写的针对配送订单的评价内容;
订单备注:顾客手动填写的针对订单的备注内容;
骑手接单时长:顾客下单后到骑手接单之间所花时长;单位:分钟;
到店时长:骑手接单后到指定站点的时长;单位;分钟;
到店等餐时长:骑手到达指定站点后等待餐好所花时长;单位:分钟;
送达时长:骑手取餐后送至顾客处所花时长;单位:分钟。
在这里插入图片描述

处理数据

data.describe()

在这里插入图片描述
发现送达时长存在0这一不符合常理值,需要重点关注该值看做哪种操作,同时骑手接单时间259分钟的也需要关注,是何原因

异常值处理

data.query('送达时长==0')
#data[(data['送达时长']==0)] 数据量大使用query速度更快

在这里插入图片描述
查看该订单发现,实际送达时间为52min,不到三公里路程,可能是骑手直接点了送达,或者是系统错误,手动修正

data.loc[data.送达时长==0,'送达时长'] = 52
data.query('骑手接单时长>259')

在这里插入图片描述
该接单时长过长可能是位置偏远等问题,不需要做特殊处理

标签处理

data['顾客配送评价标签'].unique()

在这里插入图片描述

新增计算列

data=pd.merge(data,(data['顾客配送评价标签'].str.split('|',expand=True,n=1)),how='left',left_index=True,right_index=True)
data.rename(columns={0:'顾客配送评价标签1',1:'顾客配送评价标签2'},inplace=True)
data.info()

在这里插入图片描述

data.loc[:, '取餐时长'] = data['骑手接单时长'] + data['到店时长']+ data['到店等餐时长']
data.loc[:, '总时长']=data['取餐时长']+data['送达时长']
data

在这里插入图片描述

数据分析

分析思路

在这里插入图片描述

描述性分析

data.describe()

在这里插入图片描述
骑手接单时长、到店时长、到店等餐时长大部分的数值都在正常范围内,不是造成差评的主要原因,但上诉原因可能会影响总时长,由于在目前的数据中,没有更多的数据支撑,所以无法得出详细的结论,重点关注这些超过正常范围的订单,查看具体情况,分析原因。

data['顾客配送评价标签1'].value_counts()

在这里插入图片描述
差评原因在该份数据中大概集中在九类,其中送达超时、态度不好、其他、少餐/洒餐占了差不多4/5,其中送达超时占比最大,需要重点改进

data['站点名称'].value_counts()

在这里插入图片描述
差评商家在该份数据中,站点C、A、B得到的差评尤为多,需要重点关注,针对性的调整改善

data['骑手名称'].value_counts().describe()

在这里插入图片描述
骑手差评次数在该份数据中,75%的骑手都在一次左右,其中李,陈,刘,王差评次数大于5次,(骑手姓名重复默认为同一个骑手,所以不考虑*所代表的其他字符),上述四人数据需重点查看差评多的原因,做针对性调整安排。

data['骑手名称'].value_counts().head(40)

在这里插入图片描述
差评数前40名 分别是以上人员,需要对其进行专项培训,找出原因专项整治。

探索性分析

送达总时长时间过长,导致的差评

listBins = [0, 10, 20, 30, 40, 50, 60, 70,80,90,100,1000]
listLabels = ['0_10','11_20','21_30','31_40','41_50','51_60','61_70','71_80','81_90','91_100','101及以上']
data['总时长分布'] = pd.cut(data['总时长'], bins=listBins, labels=listLabels, include_lowest=True)
data['总时长分布'].value_counts()

在这里插入图片描述
从订单完成总时长分布可知,订单完成总时长主要分布在20-90分钟内。差评订单数前三分别是31_40,41_50,21_30。送达总时长过长是导致顾客差评的关键影响因素。同时由该分布可得出初步结论,三十分钟是一个可判断是否好差评的“魔法数字”,但正确与否,需要更多的数据来验证。

data['总时长分布'].value_counts('顾客配送评价标签1'=='送达超时')

在这里插入图片描述

data[data['顾客配送评价标签1']=='送达超时'].count()['总时长分布']

在这里插入图片描述

data[data['顾客配送评价标签1']=='送达超时'].groupby(['总时长分布']).总时长分布.count().sort_values(ascending=False)

在这里插入图片描述
从送达超时的订单完成总时长分布可知,订单完成总时长主要分布在40-70分钟内。41-50分钟内的差评订单数最多,可以优先匹配距离顾客近、熟悉顾客周围区域的骑手,尽量保证30分钟内送达。除此之外还存在0-15以及大于100的订单数,深入核查发现,11-20区间内的5个订单,有两个订单总订单完成时间小于15分钟,评价标签分别为“送达超时”和“提前点送达|送达超时|少餐/洒餐”,因此可能是顾客故意差评/不小心点到该标签。时长大于100分钟的订单数,深入核查发现,骑手接单时长、送达时长过长,其中有1条顾客评价表明骑手不熟悉路并且不主动联系顾客,针对这一现象,鼓励骑手有礼貌地提取询问顾客。

data[data['顾客配送评价标签1']=='送错餐品'].groupby(['总时长分布']).总时长分布.count().sort_values(ascending=False)

在这里插入图片描述

data[data['顾客配送评价标签1']=='少餐/洒餐'].groupby(['总时长分布']).总时长分布.count().sort_values(ascending=False)

在这里插入图片描述
从少餐/洒餐订单的总送达时长分布中可知,31-40分钟区间的订单数最多,其次是21-30分钟区间,可能因为骑手担心送达超时差评,所以取餐过于着急,送餐速度过快,导致送餐出错,少拿餐品,甚至外卖箱内的餐品倾洒,反而影响了顾客的食用体验。

可以鼓励商家使用更密封的餐盒,减少餐品倾洒现象的出现;同时可以设置骑手在店内取餐时,核对餐品,避免出现少餐现象。

骑手个人行为导致的差评

data[data['顾客配送评价标签1']=='态度不好'].groupby(['骑手名称']).骑手名称.count().sort_values(ascending=False).describe()

在这里插入图片描述
态度不好的骑手,在该数据中有82个,超过一次态度不好的骑手大概有20个,最多的次数有三次。可以对态度不好的骑手进行提示,多次得到态度不好差评者,应给予相应的惩罚和教育,或限制对应骑手接单次数,待好评率达到标准后,再恢复正常接单。

data[data['顾客配送评价标签1']=='提前点送达'].groupby(['骑手名称']).骑手名称.count().sort_values(ascending=False).describe()

提前点送达的骑手在该数据中,有33个,都是一次,推测可能是在发现该行为以后平台进行了干预,但不能说没有多次行为就可以忽视该行为,后续骑手培训,规范等都需要重视

data[data['顾客配送评价标签1']=='仪表不整'].groupby(['骑手名称']).骑手名称.count().sort_values(ascending=False).describe()

在这里插入图片描述
仪表不整的骑手在该数据中,有11个,都是一次,推测可能是在发现该行为以后平台进行了干预,但不能说没有多次行为就可以忽视该行为,后续骑手培训,规范等都需要重视

data[data['顾客配送评价标签1']=='骚扰威胁'].groupby(['骑手名称']).骑手名称.count().sort_values(ascending=False).describe()

骚扰威胁这个虽然只有一个骑手的一次行为,但这是在服务业严禁允许的,需要加强该方面的管控,强力整治。

商户行为导致的差评

listBins = [0, 10, 20, 30, 40, 50, 60]
listLabels = ['0_10','11_20','21_30','31_40','41_50','51_60']
data['等餐时长分布'] = pd.cut(data['到店等餐时长'], bins=listBins, labels=listLabels, include_lowest=True)
data['等餐时长分布'].value_counts()

在这里插入图片描述
取餐时长集中在10分钟以内,处于合理区间,因此推断这不是导致差评的主要原因。

data[data['顾客配送评价标签1']=='少餐/洒餐'].groupby(['站点名称']).站点名称.count().sort_values(ascending=False)

在这里插入图片描述
无法得出是否对差评有影响结论

data[data['顾客配送评价标签1']=='送错餐品'].groupby(['站点名称']).站点名称.count().sort_values(ascending=False)

在这里插入图片描述
无法得出是否对差评有影响结论
但可对站点C、A、B进行专项研究,分析具体原因。

其他评价标签的白描

包含“其他”差评标签的记录共112条,其中仅有“其他”差评标签的数据记录为75条。由于数据条数较少,所以人工核查“其他”差评发生的具体原因,如果数据条数过多,需另行采取方法。通过顾客评价内容发现,存在各种各样的原因,大致归为菜品不满意、没有送至楼上、骑手仪表态度、配送过慢以及不明原因。

可以根据顾客评价内容优化差评标签选择,精细化归类,鼓励顾客选择“其他”差评原因时,手动输入具体差评原因,避免恶意差评现象。

建议

从用户使用外卖软件的流程出发,在以下几个方面给出运营解决方案,以改善差评订单数:

用户下单
鼓励用户备注个人需求,如“少油少盐”等标签,方便站点配餐,提高用户用餐满意度。
顾客下单时,对预计等待时间进行说明,骑手接单时间超过某值时对顾客进行温馨提醒,确定顾客是否愿意继续等待。
可以设置送达时间区间,小于送达时长上限时顾客不能评价送达超时。可以为顾客设置温馨提醒,周围无骑手,如继续等待可能等待多久时间,避免顾客等候时间过长,给出差评的现象。

骑手接单
可以设置地区标签,骑手选择自己熟悉的地区标签,在顾客下单后,优先从熟悉该地区的骑手中派单;

骑手到店取餐
骑手到店等餐取餐应核对顾客点单,防止取错餐/少餐。

站点配餐
站点配餐尽量选用密封性强的餐盒,减少食物倾洒的现象;
在店铺中明确标注菜品口味,避免顾客盲目选择与自己口味不合的餐品,给出差评;
注意顾客针对餐品的备注标签。

骑手送餐
如果是对顾客所在区域并不熟悉的骑手,可以在骑手接单时提醒顾客,并鼓励骑手主动询问顾客路线,减少送达超时现象;
鼓励骑手在每天上班时进行仪容仪表打卡,确保派餐骑手仪容仪表过关;
对出现态度不好差评的骑手进行提醒,如若多次出现态度不好的差评,可以限制对应骑手接单数,待满足好评率/态度不错的好评标签条件后,再恢复骑手接单量。
优先匹配距离站点、顾客距离较近的骑手接单,减少骑手为赶时间,不能安全行驶,同时少餐/洒餐的现象;
可以限制骑手同一时间的最高接单量,避免骑手接单过多,导致送错餐/送达超时/洒餐等。

顾客评分
可以根据顾客评价内容优化差评标签选择,精细化归类,鼓励顾客选择“其他”差评原因时,手动输入具体差评原因,避免恶意差评现象。

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值