五一去长沙吃喝玩乐
前几天发表过一篇文章厦门不止鼓浪屿,得到了一些朋友的肯定,让我再写下其他城市。这两天又获取到了两份关于长沙的数据:长沙景点和长沙美食,之后进行了分析,如果有朋友想去长沙或者周边城市玩,要仔细看看喔。
导入库
1 | import pandas as pd |
长沙景点
景点分析效果
首先看见具体的分析结果:
数据获取
长沙景点的数据获取方法和之前那篇关于厦门的文章是一样的,只是重新跑了一遍代码,具体过程不再阐述,感兴趣的朋友可以看之前的文章,爬取的字段:
- 中文名
- 英文名
- 攻略数
- 评价数
- 位置
- 排名
- 驴友占比
- 简介
具体的源代码如下:
最终数据有1152条,数据中绝大部分是长沙的景点数据,也有少量少量周边城市,比如:宁乡、浏阳等的数据,整体的数据前5行如下:
下面重点介绍数据分析的过程
整体情况
首先看看整体的数据情况:
1 | fig = px.scatter(changsha[:10], # 前10个 |
很显然:橘子洲、岳麓山、岳麓书院、太平老街排名靠前
排名靠前景点
看看排名靠前的景点是哪些?
1 | # 根据ranking排序取出前20名数据,排除ranking=0的数据,再取出前10数据 |
通过排名我们发现:橘子洲(烟火、大桥、天心阁)、岳麓山(书院)、黄兴路步行街、马王堆汉墓遗址、湖南省博物馆,整体排名很靠前,深受游客们欢迎,具体看看排名前20的景点:
评论火爆景点
很多游客到了一个景点喜欢写评论,看下哪些景点获得大量的评论:
1 | changsha2 = changsha[changsha["comment"] != 0].sort_values(by=["comment"],ascending=False)[:10] |
攻略在手,旅游不愁
出门旅游之前最好还是做一份旅游攻略,看看提供攻略最多的前10景点是哪些:
如果我们考虑前20个景点的攻略数:
驴友占比
我们爬取到的驴友数据是百分比,类型是字符串类型,我们现在去掉%符号,取出左边的数值,如果没有则用0代替,方便最终画图,具体操作如下:
1 | # 去掉%取出左边数据 |
取出排名前10的驴友占比景点:
景点介绍
获取到的abstract字段是用来描述景点的基本信息,可以用来制作词云图,具体处理过程如下:
1 | abstract_list = changsha["abstract"].tolist() |
长沙美食
第二部分介绍的是长沙(附近部分长沙)的美食,接下来从3个方面介绍:
- 字段获取
- 数据保存及处理
- 美食数据分析
发送请求
1 | url = "https://travel.qunar.com/p-cs300022-changsha-meishi?page=1" |
字段获取
- 名称cn_title
- 评分socre
- 均价person_avg
- 地址address
- 推荐菜recommand
- 评价comment
1、源码结构
网页显示每页有10个景点(最后页未必是10个),总共200页的数据,每个景点的信息包括在一个<li></li>
标签对中,我们只需要从标签中获取到相应的信息即可
2、名称和评分两个字段的获取相对简单,直接通过正则表达式来获取,关键字定位需要准确(以后会详细详解正则表达式的使用)
1 | # 中文名 |
1 | # 得分:没有得分用--表示 |
3、关于剩下4个字段的获取,相对复杂。因为他们并不是在每个店的信息中存在,有的,但是他们有一个共同点:全部是隐藏一个<div></div>
标签对中,而且每个字段都有自己的关键词
具体处理方法:先大后小
1、先整体:提取sublistbox
下面的全部信息
2、从步骤1的信息进行判断,获取4个单独字段
1 | # 均价 |
剩下3个字段处理类似:
1 | address = [] |
1 | recommand = [] |
1 | comment = [] |
4、上面是获取单页数据的解析过程,下面讲解如何获取200页的字段数据:
1 | # 中文名:得分字段类似 |
1 | # 均价字段:地址、推荐菜、评价类似 |
获取全网数据
5、提取到每个字段后生成整体数据,并保存:
1 | # 1、生成数据 |
美食数据分析
前期处理
在进行数据分析之前,需要进行前期的处理:
1 | df["得分"] = df["得分"].apply(lambda x: x.replace("--","0")) # 将得分中的--替换成0 |
改变两字字段的数据类型:
长沙到底有几家文和友?
1、文和友是长沙的知名老店,那获取到的数据中有几家和文和友相关的店?
数据显示:20家
看看前5家:
2、哪家文和友得分最高?
我们看看前5名:
1 | fig = px.scatter( |
可以看到:府中路的这家店是评分最高的,网友给的评价是:
虾肉很新鲜,口感嫩滑,入味极佳,个人觉得不是很辣,但是如果对于吃辣程度一般的人来说,绝对足够了。
臭豆腐香不香?
1、看看数据中有臭豆腐店
数据显示有19家,我们看看前5家店
2、臭豆腐的价格如何?
😭太平街21号的一份臭豆腐31块?不知道香不香!!!
3、整体臭豆腐店的分布,基于得分和均价两个字段
1 | px.scatter(choudoufou,x="得分",y="均价",color="中文名",size="均价") # 只筛选均价大于0 |
茶颜悦色好喝吗?
1、数据中几家茶颜悦色的店?
数据显示是10家,但是我想长沙肯定是不止10家!!!数据量还是太少了
2、茶颜悦色价格如何?
筛选出价格大于0的,我们:茶颜悦色的价格基本在17元左右
1 | chayanyuese[chayanyuese["均价"] > 0] |
湖南人爱嗦粉
湖南人非常喜欢吃粉,尤其是常德的米粉非常出名
1、看看数据中有几家粉店?
数据显示有103家!!!果然湖南人爱嗦粉
2、查看得分排名前10的粉店
1 | mifen.sort_values("得分",ascending=False).head(10) |
排名靠前的10位店价格基本上控制在14-15左右
3、米粉店整体分布
1 | px.scatter(mifen,x="得分",y="均价",color="中文名",size="均价") |
4、店铺汇总
另外,查看数据发现,还有15家酒吧,28家火锅店,我们汇总下。数据量过少,仅供参考
1 | doors = pd.DataFrame({ |
网友推荐菜
对于网友的推荐菜,采用词云图展示:
1 | # 1、选择推荐菜数据 |
总结
文章通过对两份数据获取和分析,给想到长沙旅游的朋友几点建议:
1、橘子洲你应该去看看
从长沙景点数据分析中看出来,不管是整体排名、游客提供的攻略数、评论数,橘子洲都是排名第一的,可以在橘子洲大桥看烟火🎆
2、五一广场真的很热门
五一广场整个片区很多吃喝玩乐的地方:太平老街、火宫殿、黄兴路步行街等,爱吃爱玩的你应该去
3、博物馆和遗址
如果喜欢历史,可以去湖南省博物馆、马王堆汉墓遗、长沙简牍博物馆址逛逛
4、不怕辣就吃龙虾
喜欢吃小龙虾的就去文和友吧,口味挺齐全的。推荐:海信广场店
5、一定要尝下湖南米粉
上面的数据已经显示了,大大小小的粉店在长沙太多了,到了长沙务必尝下,推荐:原味粉店家