Python实战 | 送亲戚,送长辈,月饼可视化大屏来帮忙!

点击上方“菜鸟学Python”,选择“星标”公众号

超级无敌干货第一时间推给你!!!

中秋节介绍

中秋节,又称祭月节、月光诞、月夕、秋节、仲秋节、拜月节、月娘节、月亮节、团圆节等,是中国民间的传统节日。

中秋节自古便有祭月、赏月、吃月饼、玩花灯、赏桂花、饮桂花酒等民俗,流传至今,经久不息。

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

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

可视化大屏效果展示

数据采集

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

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

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

淘宝爬虫完整讲述:http://suo.im/6vwBc8

部分爬虫代码如下:

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:我还没吃过),其次小时候经常吃的五仁月饼一直卖的挺好,豆沙月饼还一直是很多孩子的最爱呀!还有现在出来的各种各样的新鲜口味,像美心、酥皮、心奶、燕窝、白莲等等,你到底喜欢哪一个呢?

End

后台回复“中秋节”,获取本文完整代码!

近期八大热门:

发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片!
盗墓热再起!我爬取了6万条《重启之极海听雷》的评论,发现了这些秘密
用Python一键生成炫酷九宫格图片,火了朋友圈
菜鸟也疯狂!8分钟用Python做一个酷炫的家庭随手记
Github获8300星!用Python开发的一个命令行的网易云音乐
一道Python面试题,硬是没憋出来,最后憋出一身汗!卧槽!Pdf转Word用Python轻松搞定!教你6招,不错的Python代码技巧!
菜鸟编程大本营,现已正式上线!
每个程序员都是从菜鸟开始成长起来的,没有人一开始就是程序员高手。菜鸟编程大本营,专注于分享小白开始学习编程的技巧,让菜鸟爱上编程,进阶成为高手!感兴趣的小伙伴可以关注一下哈!

我们在B站上录制了大量的视频,欢迎大家交流学习

1). 花木兰到底好看不,我用Python爬取上万条评论

2). 80行Python代码一键轻松把Pdf转word

3). 用Python一键把图片转漫画

4). 再见付费软件,我用70行Python搞定

5). 用Python分析“青春有你2”

6). 用Python三步制作短视频

7). 用Python实现一个弹球游戏

8). 10行代码实现美图秀秀

9). 50行代码用Python批量做海量小姐姐素描图

点这里,直达菜鸟B站大本营
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值