Excel 也能画蜂群图?用 Python 把异常数据揪出来!
- 2026-11-07 10:51:18
Excel 也能画蜂群图?用 Python 把异常数据揪出来!
做数据分析,最怕什么? 不是数据太多,而是数据明明有问题,平均值却看起来一切正常。 比如,某公司的快递平均送达时间是 25 小时。乍一看,效率还不错。可仔细一查,有些包裹 10 小时就到了,有些却拖了 60 小时。 这就尴尬了:平均值没撒谎,但它确实没把全部实情告诉你。 这时候,除了柱形图和折线图,还可以试试一种有意思的图表——蜂群图(Swarmplot)。 今天就用 Excel 中的 Python 功能,看看它究竟能帮我们发现什么。 一、蜂群图到底有什么用? 简单来说,蜂群图就是把每条数据画成一个点,再让这些点沿着分类轴错开排列,尽量避免重叠。 它有三个实用之处: 看分布:数据主要集中在哪个范围,一眼就能看出来。 找异常:大部分数据挤在一起,偏偏有几个点跑得老远,就值得重点检查。 做对比:不同类别的数据放在一起,谁更稳定、谁波动更大,不必光靠猜。 注意,蜂群图能帮助我们发现可疑数据,但远离数据群的点不一定就是错误记录,还需要结合业务情况判断。 二、准备数据,开始画图 假设我们有一份物流数据,记录了不同运输方式的送达耗时,以及包裹是否属于易碎品。 数据大致如下:
以上只是演示数据,实际分析时使用自己的完整数据表即可。 第一步:调用 Python 在 Excel 中找到目标单元格,输入 =PY,进入 Python 公式编辑环境。 然后使用 Seaborn 绘图库中的 swarmplot() 函数。 基础公式如下: PYTHON =PY sns.swarmplot(data=数据表, x='运输方式', y='送达耗时') 这里的三个参数分别表示: data:要分析的数据表。 x:横轴上的分类字段,这里是运输方式。 y:纵轴上的数值字段,这里是送达耗时。 实际使用时,需要将示例中的字段名称替换成数据表里的真实列名。 第二步:观察数据分布 运行代码后,就能看到不同运输方式对应的数据点。 假设加急运输的大部分记录集中在 20~30 小时之间,却有几个点超过 50 小时。 
这时就值得追问了:是运输途中出现延误,还是个别订单存在特殊情况? 相比只看平均值,蜂群图让每条记录都露了面。谁在正常发挥,谁在拖后腿,至少有了进一步调查的线索。 当然,具体分布要以实际数据绘制的结果为准,不能仅凭示例就认定真实业务存在同样的问题。 三、再加一个维度,分析更细致 光知道哪种运输方式耗时长还不够。 如果我们还想知道:易碎品是不是比普通包裹更慢? 就可以增加 hue 参数,按包裹类型给数据点着色。 PYTHON =PY sns.swarmplot(data=数据表, x='运输方式', y='送达耗时', hue='包裹类型') 其中,hue='包裹类型' 用于区分不同类别,颜色由 Seaborn 的调色方案决定,并非固定为某两种颜色。 这样一来,同一种运输方式下,不同类型包裹的耗时分布就能放在一起比较。 例如,如果图中易碎品的点整体偏高,就可以进一步检查包装处理、运输流程或配送安排是否存在差异。 不过,看到相关性不代表找到了原因。蜂群图负责提供线索,真正的业务归因还需要结合更多数据验证。 四、使用时有两个小提醒 提醒 01 Python in Excel 的具体操作界面可能因版本而异。提交代码以及将图表显示在单元格上方的操作,请以当前 Excel 界面为准。 提醒 02 Seaborn 的 swarmplot() 会尝试调整点的位置以减少重叠。数据量特别大时,绘图可能变慢,甚至出现点无法完全排开的情况。 另外,以上代码是按 Python in Excel 的公式调用方式编写的示例。不同版本对 Python 单元格、数据引用和图像显示的支持可能有所差异,实际使用前建议先确认当前环境支持相应功能。 写在最后 
数据分析不只是计算总和、平均值,再做一张漂亮的柱形图。 有时候,把每一条记录摆出来,反而更容易发现问题。 下次遇到物流耗时、客服响应时间、产品检测结果等数据,不妨试试蜂群图。 毕竟,平均值负责汇报整体情况,而那些不起眼的小点,说不定才藏着真正值得解决的问题。 公众号、小红书、抖音、视频号全平台同名:Frank讲数据 话题:Excel 实用技巧 / Excel 数据整理 / Power Query / Power BI / AI 办公

| 57 | ||


本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。