美团差评数据分析,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条。由于数据条数较少,所以人工核查“其他”差评发生的具体原因,如果数据条数过多,需另行采取方法。通过顾客评价内容发现,存在各种各样的原因,大致归为菜品不满意、没有送至楼上、骑手仪表态度、配送过慢以及不明原因。

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

建议

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474833.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[原创]FineUI秘密花园(二十一) — 表格之动态创建列

有时我们需要根据数据来动态创建表格列&#xff0c;怎么来做到这一点呢&#xff1f;本章会详细讲解。 动态创建的列 还是通过一个示例来看下如何在FineUI中动态创建表格列&#xff0c;示例的界面截图&#xff1a; 先来看下ASPX的标签定义&#xff1a; 1: <ext:Grid ID"…

[Hands On ML] 8. 降维

文章目录1. 降维方法1.1 投影1.2 流行学习2. 降维技术2.1 PCA2.2 增量PCA2.3 随机PCA2.4 核PCA2.5. 调参2.6 LLE2.7 其他方法本文为《机器学习实战&#xff1a;基于Scikit-Learn和TensorFlow》的读书笔记。 中文翻译参考 特征维度太大&#xff0c;降维加速训练能筛掉一些噪声和…

LeetCode 776. 拆分二叉搜索树(DFS)*

文章目录1. 题目2. 解题1. 题目 给你一棵二叉搜索树&#xff08;BST&#xff09;、它的根结点 root 以及目标值 V。 请将该树按要求拆分为两个子树&#xff1a;其中一个子树结点的值都必须小于等于给定的目标值 V&#xff1b;另一个子树结点的值都必须大于目标值 V&#xff1…

变压器绕组降低邻近效应_了解高频变压器设计基础(2)

单片开关电源高频变压器的设计要点高频变压器是单片开关电源的核心部件&#xff0c;鉴于这种高频变压器在设计上有其特殊性&#xff0c;为此专门阐述降低其损耗及抑制音频噪声的方法&#xff0c;可供高频变压器设计人员参考。单片开关电源集成电路具有高集成度、高性价比、最简…

Python-jieba分词学习及应用

文章目录基础添加自定义词典实战基础 jieba.cut 方法接受三个输入参数: 需要分词的字符串&#xff1b;cut_all 参数用来控制是否采用全模式&#xff1b;HMM 参数用来控制是否使用 HMM 模型jieba.cut_for_search 方法接受两个参数&#xff1a;需要分词的字符串&#xff1b;是否…

LeetCode 302. 包含全部黑色像素的最小矩形(BFS)

文章目录1. 题目2. 解题1. 题目 图片在计算机处理中往往是使用二维矩阵来表示的。 假设&#xff0c;这里我们用的是一张黑白的图片&#xff0c;那么 0 代表白色像素&#xff0c;1 代表黑色像素。 其中黑色的像素他们相互连接&#xff0c;也就是说&#xff0c;图片中只会有一…

蓝色三角_叶子长得像韭菜,花朵开得像个糖三角的鸢尾,用这3个方法拍摄它...

女孩子们小时候都跳皮筋。有一段口诀&#xff0c;里面有一句“马兰开花二十一”……我虽然皮筋没少跳&#xff0c;但是对于马兰花&#xff0c;却也是只闻其名&#xff0c;未见其身。后来&#xff0c;我在户外拍风光、拍花卉。在草丛里看到三片细长花瓣组成的的蓝色小花&#xf…

LeetCode 1063. 有效子数组的数目(单调栈)

文章目录1. 题目2. 解题1. 题目 给定一个整数数组 A&#xff0c;返回满足下面条件的 非空、连续 子数组的数目&#xff1a; 子数组中&#xff0c;最左侧的元素不大于其他元素。 示例 1&#xff1a; 输入&#xff1a;[1,4,2,5,3] 输出&#xff1a;11 解释&#xff1a;有 11 个…

springboot 多了8小时_日本人不明白:中国的奶茶有多好喝,值得排队8小时去买?...

日本人不明白&#xff1a;中国的奶茶有多好喝&#xff0c;值得排队8小时去买&#xff1f;最近有许多的网红奶茶店兴起&#xff0c;尤其是在冬季&#xff0c;加料十足的热奶茶就成为了年轻人的心头之好&#xff0c;就拿最近在武汉新开的首家茶颜悦色来说&#xff0c;每天的队伍都…

将整个表单设置为只读_如何将独立网站设置为制作中,阻止搜索引擎收录网站页面?...

独立网站设置为制作中当网站未完成状态时&#xff0c;可能不希望除管理员以外的人看到未完成的页面时&#xff0c;如何操作可以将独立网站设置为制作中&#xff0c;并阻止搜索引擎收录网站页面呢&#xff1f;可按照以下步骤进行操作&#xff1b;将网站设置为制作中网站制作中设…

LeetCode 361. 轰炸敌人(前缀和DP)

文章目录1. 题目2. 解题1. 题目 想象一下炸弹人游戏&#xff0c;在你面前有一个二维的网格来表示地图&#xff0c;网格中的格子分别被以下三种符号占据&#xff1a; W 表示一堵墙 E 表示一个敌人 0&#xff08;数字 0&#xff09;表示一个空位请你计算一个炸弹最多能炸多少敌…

led拼接屏报价_液晶拼接屏与led显示屏的区别在哪?

在目前的大屏显示产品中&#xff0c;液晶拼接屏和led显示屏是两种比较普遍的产品&#xff0c;拼接大屏是通过单个液晶拼接单元拼接而成的显示大屏&#xff0c;而led显示屏则是通过发光二极管组成密集点阵组成图像显示&#xff0c;我们通常听到的P1、P2代表的是像素点距离&#…

LeetCode 356. 直线镜像

文章目录1. 题目2. 解题1. 题目 在一个二维平面空间中&#xff0c;给你 n 个点的坐标。 问&#xff0c;是否能找出一条平行于 y 轴的直线&#xff0c;让这些点关于这条直线成镜像排布&#xff1f; 示例 1&#xff1a; 输入: [[1,1],[-1,1]] 输出: true示例 2&#xff1a; 输入…

使用DispatcherTimer计时器

《银光志--Silverlight 3.0开发详解与最佳实践》第3章XAML与Silverlight编程内功&#xff0c;通过本章的学习&#xff0c;相信你会对Silverlight编程模型、XAML、事件处理&#xff0c;以及LINQ查询语言有了一个比较全面的了解&#xff0c;在本章的示例中应用的都是一些基本的XA…

静物摄影用光技巧_室内人像摄影想要拍好,这3种用光技巧你了解吗?

选择靠近窗户的位置在室内可以首先考虑在靠近窗户的位置进行拍摄&#xff0c;因为窗户边上尤其是朝北的窗户会有非常柔和的散射光&#xff0c;当投射进窗户的是直射光线时&#xff0c;摄影者还可以拉上一层很薄的窗帘来缓解一下光线的强度&#xff0c;在靠近窗户的位置&#xf…

LeetCode 660. 移除 9(9进制)

文章目录1. 题目2. 解题1. 题目 从 1 开始&#xff0c;移除所有包含数字 9 的所有整数&#xff0c;例如 9&#xff0c;19&#xff0c;29&#xff0c;…… 这样就获得了一个新的整数数列&#xff1a;1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6&…

postman怎么导出测试用例_利用Charles抓包巧转接口自动化测试用例

在前面的文章中&#xff0c;也有介绍类似的工具的。例如&#xff1a;一键将接口请求转为测试用例介绍了开源的mitmproxy录制转化为接口测试用例&#xff0c;postman接口用例转化为python自动化测试用例 文章记录了如何把postman的测试用例转化为python的接口自动化的测试用例&a…

LeetCode 1236. 网络爬虫(BFS/DFS)

文章目录1. 题目2. 解题2.1 BFS2.2 DFS1. 题目 给定一个链接 startUrl 和一个接口 HtmlParser &#xff0c;请你实现一个网络爬虫&#xff0c;以实现爬取同 startUrl 拥有相同 域名标签 的全部链接。该爬虫得到的全部链接可以 任何顺序 返回结果。 你的网络爬虫应当按照如下模…

启动不起来_国产开源工具:U盘启动工具Ventoy v1.0.29发布——墨涩网

Ventoy是一个制作可启动U盘的开源工具。有了Ventoy你就无需反复地格式化U盘&#xff0c;你只需要把ISO文件拷贝到U盘里面就可以启动了&#xff0c;无需其他操作。你可以一次性拷贝很多个不同类型的ISO文件&#xff0c;在启动时Ventoy会显示一个菜单来选择。 无差异支持Legacy B…

众多Android 开源项目再次推荐,学习不可错过

FBReaderJ FBReaderJ用于Android平台的电子书阅读器&#xff0c;它支持多种电子书籍格式包括&#xff1a;oeb、ePub和fb2。此外还支持直接读取zip、tar和gzip等压缩文档。项目地址&#xff1a;http://www.fbreader.org/FBReaderJ/Angle Angle是一款专为Android平台设计的&#…