距离国庆中秋8天的假期没几天了,朋友圈各家大厂都开始秀自家定制的中秋月饼礼盒,假期要走亲访友的手里也少不了要提一盒月饼。

每年中秋节到,总会去姥姥那里送中秋,并买上各种各样的月饼,那个时候科技并不怎么发达,不仅没有这么多形形色色的月饼,也不知道哪些月饼卖得好? 月饼的价格分布是怎样的呢? 什么地方的月饼销量比较高呢? 简直有十万个为什么,希望别人给我们解答。

随着科技的飞速发展,互联网沟通了你我他。通过淘宝上月饼的销量,就可以解决我们想要知道的好多问题。基于此,我爬取了淘宝上4000多条月饼的销售数据,为大家展示了一幅漂亮的可视化分析仪表板,解决大家心目中的问题。

可视化大屏效果展示

数据采集

这次爬取淘宝,采用的是最简单的方式:Selenium控制Chrome浏览器进行自动化操作,中途只需要扫码登陆一次,即可完成整个数据的爬取。

这种方法极其好用,不会出现封IP、封号的情况,大家放心使用!

大家运行这个代码之前,唯一要做的就是下载与谷歌版本相对应的chromedriver驱动,然后进行相关配置即可。其实关于淘宝整个数据爬取的过程,我之前为大家写了一篇很详细的文章,供大家参考。

部分爬虫代码如下:

from selenium import webdriver
# 搜索商品,获取商品页码def search_product(key_word):    # 定位输入框    browser.find_element_by_id("q").send_keys(key_word) # 定义点击按钮,并点击    browser.find_element_by_class_name('btn-search').click() # 最大化窗口:为了方便我们扫码    browser.maximize_window()    # 等待15秒,给足时间我们扫码 time.sleep(15) # 定位这个“页码”,获取“共100页这个文本” page_info = browser.find_element_by_xpath('//div[@class="total"]').text # 需要注意的是:findall()返回的是一个列表,虽然此时只有一个元素它也是一个列表。    page = re.findall("(\d+)",page_info)[0] return page 

数据清洗

数据清洗很重要,这个对于我们后续做可视化展示,极其重要。因此我们需要根据后面要做的图形,然后进行对应的进行数据清洗。

爬取到的原始数据如下:

原始数据

整个数据看上去算是比较干净,但是还是有几个地方值得我们处理一下。

  1. 爬取到的原始数据没有列名,我们需要添加一个新列名;
  2. 整个爬虫过程中,会出现重复数据,我们需要提前去重处理;
  3. 将购买人数为空的记录,替换成0人付款;
  4. 将购买人数转换为销量(注意部分单位为万);
  5. 删除无发货地址的商品,并提取其中的省份;

数据清洗部分代码如下:

# 提取数值
df['num'] = [re.findall(r'(\d+\.{0,1}\d*)', i)[0] for i in df['付款人数']]  # 提取数值
df['num'] = df['num'].astype('float')  # 转化数值型
# 提取单位(万)df['unit'] = [''.join(re.findall(r'(万)', i)) for i in df['付款人数']]  # 提取单位(万)
df['unit'] = df['unit'].apply(lambda x:10000 if x=='万' else 1)
# 计算销量df['销量'] = df['num'] * df['unit'] 

现在来看看,清洗后的数据是啥样的?

数据清洗后的数据

可视化展示

可视化是整个文章的亮点所在,所谓“字不如表、表不如图”。整个可视化分析我们基于以下五个问题开展而来。

  1. 月饼销量Top10的柱形图;
  2. 店铺月饼销量Top10的柱形图;
  3. 全国月饼销量的地域分布地图;
  4. 不同价格区间的月饼销量圆环图;
  5. 月饼销售关键字的词云图;

鉴于整个文章排版,本文可视化部分的代码均可在本文末尾获取。

1、月饼销量Top10的柱形图

结论分析:销量Top10的月饼,其实对于我们选购月饼还是挺有指导意义的。从图中可以看到这个稻香村月饼,卖的还是极其好的,销量排名前10的产品中,稻香村月饼占据了3个位置。还有一个名字特别熟悉:五芳斋,只知道他家的粽子做的好,原来月饼也做的不错,所以说品牌效应还是很好的。那么你是否可以再看看,这些店里面是否有其他更好吃的点心呢?

2、店铺月饼销量Top10的柱形图

结论分析:这里图中显示的结果,和第一张图显示的结果不谋而合,就不再过多的解释了。唯独感兴趣的还是这个稻香村,为啥销量如此好?百度一下得知原来是一家百年老店,附带一张图如下。

3、全国月饼销量的地域分布地图

结论分析:从图中可以看出,广东、浙江、山东、福建、北京的月饼销量,在全国都是遥遥领先的。查阅资料可以发现,它们几乎都有自己的品牌,像广东的广式月饼、浙江的衢式月饼、山东的鲁式月饼等。广式月饼重油重糖、京式月饼重油轻糖、鲁式月饼口味清淡、苏式月饼重甜。大家可以根据自己的需求,给亲戚长辈们合理挑选符合口味的月饼哦。

4、不同价格区间的月饼销量圆环图

结论分析:当然价格才是大家关注的焦点。观察上图可以发现,月饼的价格几乎是处在中间的、能被大家接受的范围(22-115),再稍微贵一点的就是115-633这个区间(还可以接受),而处在633元以上的月饼几乎为0。毕竟中秋节是一个传统节日,适中的价格才能被大家接受,利润就这么几天,薄利多销才是王道。

5、月饼销售关键字的词云图

结论分析:从图中可以看出,传统的四大月饼(京式月饼、广式月饼、滇式月饼、苏式月饼)中广式月饼极其受欢迎(PS:我还没吃过),月饼口味上,小时候经常吃的五仁月饼的王者地位不可动摇,豆沙月饼提及率也很高,一直是很多孩子的最爱!还有现在出来的各种各样的新鲜口味,像美心、酥皮、心奶、燕窝、白莲等等,你到底喜欢哪一个呢?

你买好月饼了吗?走女方家还是给自己家的呢

完整项目代码获取点这里即可!

Python分析淘宝月饼销售数据,五仁月饼王者地位不可动摇!相关推荐

  1. Python分析淘宝月饼销售数据,五仁月饼王者地位不可动摇

    距离国庆中秋8天的假期没几天了,朋友圈各家大厂都开始秀自家定制的中秋月饼礼盒,假期要走亲访友的手里也少不了要提一盒月饼. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语 ...

  2. python数据可视化案例 淘宝粽子_Python分析淘宝月饼销售数据,哪种最受欢迎?排第一的你想不到...

    距离国庆中秋8天的假期没几天了,朋友圈各家大厂都开始秀自家定制的中秋月饼礼盒,假期要走亲访友的手里也少不了要提一盒月饼. 每年中秋节到,总会去姥姥那里送中秋,并买上各种各样的月饼,那个时候科技并不怎么 ...

  3. 用Python分析淘宝2000款避孕套,得出这些有趣的结论

    我们在上一篇的时候已经将淘宝数据爬取下来了,但是并没有做数据分析.所以今天这篇文章就是教大家如何去分析数据,得出一些有用的结论! Python语言相比其他语言的优势在哪里?猪哥认为是数据分析和人工智能 ...

  4. 【数据分析】系列-Python分析淘宝4200款Bra(没错,就是文胸)后,发现最好卖的款式居然是。。。

    此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉. 本着娱乐的态度,着手分析一下淘宝的前4200+款bra(文胸),看看有什么有趣的地方. 项目背景 起因:近日, ...

  5. 用Python分析淘宝用户行为

    数据来源: 阿里云 天池数据集https://tianchi.aliyun.com/dataset/dataDetail?dataId=46 阿里巴巴提供的移动端淘宝用户的行为数据集,包含2014-1 ...

  6. 用Python分析淘宝数千款款避孕套,得出这些有趣的结论

    到现在为止,我们的淘宝教程已经写到了第四篇,前三篇分别是: Python模拟登录淘宝,详细讲解如何使用requests库登录淘宝pc端. 淘宝自动登录2.0,新增Cookies序列化,教大家如何将co ...

  7. python开发跟淘宝有关联微_使用Python分析淘宝用户行为

    一.项目背景 本数据分析报告以手机淘宝app订单数据作为数据集,通过行业常见指标对淘宝用户行为数据进行分析,并给出优化建议.本数据集包含了2014年11月18日至2014年12月18日之间,约八十万随 ...

  8. 我用Python分析淘宝低价人群和匿名人群的连衣裙数据后,发现了这些秘密!

    1.我是一个低价人群用户 小伙伴们都在秀自己的淘宝连衣裙搜索价格,相较于小伙伴们搜索出的数百.数千的搜索"连衣裙"结果价格,很显然,我低价人群无疑了.以下是州的先生在淘宝上搜索&q ...

  9. python开发跟淘宝有关联微_利用Python分析淘宝用户行为

    目录 1.提出问题 2.理解数据 3.清理数据 4.建模分析 5.提出建议 1. 提出问题 每天淘宝都有大量的用户访问量,但最终完成交易的用户只是其中极少数: 为改善整个购物流程中的流失率,将通过研究 ...

最新文章

  1. 一个简单的语言的语法(二):ANTLR的重写规则
  2. java易语言_java程序员,0基础学习开发易语言。
  3. 怎样查看电脑系统版本_微信7.0.0自动更新后怎样去还原以前的旧版本?
  4. 微信网页授权功能来获取用户信息(昵称或头像)之php实现
  5. Springmvc的helloworld实例
  6. 将字符串转换为数组_LeetCode 树 108.将有序数组转换为二叉搜索树
  7. 安装 SharePoint 2013 Foundation
  8. SET XACT_ABORT各种用法及显示结果
  9. 关于DataV大屏分辨率那些事
  10. linux服务器分区方案
  11. Oracle 中运用rollup和cube实现汇总运算
  12. 39. 组合总和 ,40. 组合总和 II,216. 组合总和 III
  13. Mac SDK环境变量配置
  14. Android 请求Root权限代码
  15. TAGE预测器 “A case for (partially) TAgged GEometric history length branch prediction”
  16. pgp解密 java_Java PGP加密解密实例教程详细操作步骤
  17. execute与executeUpdate的区别(学习笔记)
  18. 从自身做起 全面提高论坛UEO
  19. [第四届-强网杯]:upload
  20. WM8960驱动的移植记录

热门文章

  1. Run with --stacktrace option to get the stack trace. Run with --info or --debug
  2. java的异常类_各种Java异常类大集合,精辟精辟精辟
  3. docker ubuntu or centos 中 报错 pip2: command not found 为 Python 2 安装 pip2
  4. 【蓝桥杯选拔赛真题14】python三角形 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析
  5. 空值判断,双表关联数据统计查询
  6. mysql事务特性及四种隔离级别
  7. 565.Array Nesting
  8. [*****]我的联系方式
  9. Tab组件【cube-ui】
  10. 基于流媒体技术的低成本网络实况转播的实现