Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >十三朝古都西安

十三朝古都西安

原创
作者头像
皮大大
修改于 2021-04-12 02:29:34
修改于 2021-04-12 02:29:34
1K0
举报

十三朝古都西安

这是全国旅游攻略的第四篇,前面三篇分别是:

地理位置从东南沿海,走到中部,然后到达西南,今天来到了历史文化浓厚的西北城市,历史曾至少有13个朝代在此建都:西安,自己没有去过,只是曾经坐火车路过一次,也很期待西安到底有哪些好吃的美食和好玩的地方

整体效果

先看看西安不同美食店铺数量

西安名称

以下内容知识来自维基百科,纯科普而已,讲述的是西安历史名称变化,学习下历史知识:

  • “西安城”:丰邑(殷商)-镐京(西周)-长安(西汉)-常安(新莽)-长安(东汉)-长安(曹魏)-长安(西晋)-长安(前秦)-长安(后秦)-长安(北周)-大兴(隋)-长安(唐)-大安(后梁)-长安(后唐)-永兴(宋)-奉元(元)-西安(明)-西安(清)-西安(中华民国)-西安(中华人民共和国)
  • “西安”:宗周(周)-内史(秦)-京兆(汉)-京兆(新)-京兆(南北朝)-京兆(隋)-京兆(唐)-大安(后梁)-京兆(后唐)-京兆(宋)-奉元(元)-西安(明)-西安(清)-西安(中华民国)-西安(中华人民共和国)

数据来源

数据来自网上的某公开网站,通过爬虫方式获取,具体过程参考:

  • 西安景点参考厦门的文章
  • 西安美食参考长沙的文章

涉及到的主要爬虫知识点:

  1. requests发送获取网页数据
  2. 基于正则表达式的数据解析
  3. 基于csv包的数据保存

⚠️:以后会专门写一篇文章讲解Python中如何基于re模块通过正则解析数据

西安景点

总共8个字段信息:中文名、英文名、攻略数、评论数、位置、排名、驴友占比、简介

西安美食

6个字段信息:中文名、得分、均价、地址、推荐菜、评价

导入库

代码语言:txt
AI代码解释
复制
import pandas as pd
import re
import csv
import json
import requests
import random

# 显示所有列
# pd.set_option('display.max_columns', None)

# 显示所有行
# pd.set_option('display.max_rows', None)

# 设置value的显示长度为100,默认为50
# pd.set_option('max_colwidth',100)

# 绘图相关
import jieba
import matplotlib.pyplot as plt
from pyecharts.globals import CurrentConfig, OnlineHostType   
from pyecharts import options as opts  # 配置项
from pyecharts.charts import Bar, Scatter, Pie, Line, HeatMap, Funnel, WordCloud, Grid, Page  
from pyecharts.commons.utils import JsCode   
from pyecharts.globals import ThemeType,SymbolType

import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots  # 子图

西安景点

首先看下整体的数据,显示有1864个景点:

地区景点个数

西安景点的个数主要是分布在:西安市区、周至、蓝田、临潼、高陵

代码语言:txt
AI代码解释
复制
location = df["location"].value_counts().reset_index().rename(columns={"index":"location","location":"number"})

c = (
    Pie(init_opts=opts.InitOpts(theme=ThemeType.MACARONS))
    .add("西安景点个数",[list(z) for z in zip(location["location"].tolist(),location["number"].tolist())])
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)

c.render_notebook()
景点评论之王

西安有些景点的相关评论非常之多,看下哪些景点的评论靠前?

代码语言:txt
AI代码解释
复制
df = pd.read_csv("西安景点.csv")
comment_top10 = df.sort_values("comment",ascending=False)[:10]

# 作图
fig = px.bar(comment_top10,x="cn_title",y="comment",color="comment",text="comment")
fig.update_traces(textposition="outside")
fig.show()

可以看到评论最火的是:秦始皇帝陵博物院(兵马俑),高达20339条评论,其次是秦始皇陵,16050条。的确是西安的热门景点。

攻略数之王

再看看景点攻略数的情况:

代码语言:txt
AI代码解释
复制
# pyecharts实现

x_data = strategy_top10["cn_title"].tolist()
y_data = strategy_top10["strategy"].tolist()

c = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
    .add_xaxis(x_data)
    .add_yaxis("西安景点攻略数前10名",y_data)
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-20)),  # 设置旋转角度
    )
)

c.render_notebook()
必玩景点

提取攻略数和评论都大于1000的景点:

代码语言:txt
AI代码解释
复制
comment_strategy = df[(df["comment"] >= 1000) & (df["strategy"] >= 100)]

fig = px.scatter(comment_strategy,
           x="comment",
           y="strategy",
           color="comment",
           size="strategy",
           text="cn_title"
          )

# ['top left', 'top center', 'top right', 'middle left',
# 'middle center', 'middle right', 'bottom left', 'bottom center', 'bottom right']

fig.update_traces(textposition="top center")

fig.show()

从图中显示结果来看,有几个必去的景点:

  • 秦始皇帝陵博物院(兵马俑)
  • 回民街
  • 秦始皇陵
  • 华清宫
  • 陕西历史博物馆
  • 西安城墙
  • 大雁塔
  • 大唐芙蓉园
游客心中的排名
代码语言:txt
AI代码解释
复制
# 西安市区景点排名

ranking_xian = df[(df["location"] == "西安") & (df["ranking"] != 0)].sort_values("ranking",ascending=True)[1:][:20]
ranking_xian

可以看到很多排名靠前的景点的确评论数和攻略数也很多,比如:

  1. 秦始皇帝陵博物院(兵马俑)
  2. 回民街
  3. 圭峰山(这个景点还是很意外,可能是西安比较出名的山)
  4. 大唐芙蓉园等
西安宫殿

西安的宫殿应该是很多的,我们看看获取的数据中到底有多少个宫殿相关的景点:

我们看下前10个宫殿的景区:华清宫、大明宫国家遗址公园、大明宫遗址博物馆、兴庆宫公园、阿房宫遗址

秦始皇很伟大

通过上面的分析我们发现:秦始皇帝陵博物馆(兵马俑)在西安是一个非常出名的景点,那么我们看看和秦始皇相关的景点有哪些?

代码语言:txt
AI代码解释
复制
qinshihuang = df[df["cn_title"].str.contains("秦始皇")].reset_index(drop=True)
qinshihuang

上面的结果显示:总共是7个景点,其中秦始皇帝陵博物馆(兵马俑)秦始皇陵最为热门。

公园个数几何?

每个城市都有自己不同不样的公园,我们看看西安公园的个数:

代码语言:txt
AI代码解释
复制
park = df[df["cn_title"].str.contains("公园")].reset_index(drop=True)
print("公园个数:{}".format(len(park)))
# 结果
公园个数:133

结果显示是133个,真的不少!!!看下数据中的前5个公园:

大明宫国家遗址公园、太平国家森林公园、曲江海洋极地公园、曲江池遗址公园评论还是靠前的

驴友最爱景点

我们驴友占比较高的景点:

代码语言:txt
AI代码解释
复制
lvyou = df.sort_values("lvyou_number",ascending=False)[:10].reset_index(drop=True)

fig = px.bar(lvyou,x="cn_title",y="lvyou_number",text="lvyou_number")

fig.update_traces(textposition="outside")

fig.show()

果然:回民街、秦始皇帝陵博物院(兵马俑)、大雁塔、陕西历史博物馆等是驴友心中不错的景点

总结

通过上面对景点数据的分析,我们发现西安下面几个景点很值得一去:

  1. 秦始皇帝陵博物院(兵马俑):兵马俑的确是西安景点的代表
  2. 回民街:西安各种美食、小吃聚集的场所
  3. 大雁塔:位于西安市雁塔区大慈恩寺内,现存最早、规模最大的唐代四方楼阁式砖塔,供奉着玄奘从天竺(印度)带回来的佛像、舍利梵文经典
  4. 大明宫国家遗址公园:始建于唐太宗贞观时期,西安宫殿建筑中最为辉煌壮丽的建筑群
  5. 华清宫:也称为华清池、骊山宫、骊宫、绣岭宫,唐代封建帝王游幸的别宫,唐玄宗和杨贵妃恩爱共浴的地方,也是西安事变的发生地。

西安美食

西安美食数据总共有1870条,看下前5条数据:

image-20210410182628529
image-20210410182628529
西安面食

北方人很喜欢吃面食,我们看看西安的面馆、面店:

代码语言:txt
AI代码解释
复制
df1 = pd.read_csv("西安美食.csv")
noodles = df1[df1["中文名"].str.contains("面")].reset_index(drop=True)
noodles
print("面馆总数:",len(noodles))

# 结果
面馆总数: 115

根据得分字段的降序观察前10名的店铺:

排名第一的小魏哥秘制果仁烤面筋,值得你去尝试下,地址也给你了。

biangbiang面

Biang字是这么写的😃,笔画挺多的

biangbiang面店总共有11家,郑大妈biangbiang面(南院门店)上过《天天向上》节目,估计值得你品尝

凉皮

到了西安肯定是不能错过凉皮的,数据中总共19家:

代码语言:txt
AI代码解释
复制
liangpi = df1[df1["中文名"].str.contains("凉皮")].sort_values("得分",ascending=False).reset_index(drop=True)
liangpi.head(10)
代码语言:txt
AI代码解释
复制
# 取出前10家店
fig = px.scatter(liangpi[:10],x="得分",y="均价",color="均价",size="均价",text="中文名")
fig.update_traces(textposition="top center")

fig.show()

凉皮吃:魏家凉皮就对了。

魏家凉皮,魏家凉皮,魏家凉皮!

馍馍

陕西人也挺喜欢吃馍馍,肉夹馍、羊肉泡馍都还不错的,数据中总共有87家馍馍店:

代码语言:txt
AI代码解释
复制
mo = df1[df1["中文名"].str.contains("馍")].sort_values("得分",ascending=False).reset_index(drop=True)

# 取出前10家店

fig = px.scatter(mo[:10],
                 x="得分",
                 y="均价",
                 color="均价",
                 size="均价",
                 text="中文名",
                 width=900, 
                 height=700)

fig.update_traces(textposition="top center")

fig.show()
肉夹馍

我们具体看看陕西的另一个著名小吃:肉夹馍,取出相关数据的前5名:

代码语言:txt
AI代码解释
复制
roujiamo = df1[df1["中文名"].str.contains("肉夹馍")].sort_values("得分",ascending=False).reset_index(drop=True)
roujiamo.head(5)

数据显示有36家

排名第一的樊家腊汁肉夹馍(西五路店),整体来说:价格不贵,评价还挺赞的

泡馍

看完了肉夹馍,我们再看看羊肉泡馍:数据中总共有38家店铺

代码语言:txt
AI代码解释
复制
paomo = df1[df1["中文名"].str.contains("泡馍")].sort_values("得分",ascending=False).reset_index(drop=True)
paomo

强烈推荐:果渊斋老米家泡馍馆(回坊总店)

串串🍢

到了北方也得吃个串串🍢吧?

代码语言:txt
AI代码解释
复制
kaochuan = df1[df1["中文名"].str.contains("串")].sort_values("得分",ascending=False).reset_index(drop=True)
kaochuan

数据中总共32家店,看看前5家:

我们看到佰人王串串香占据了3家,所以这家应该是西安串串的连锁店,老牌串串店。或许值得一试!

烤肉店

烤肉店总共有57家,我们看看前10家

代码语言:txt
AI代码解释
复制
kaorou = df1[df1["中文名"].str.contains("烤肉")].sort_values("得分",ascending=False).reset_index(drop=True)

# 取出前10家店
fig = px.scatter(kaorou[:10],x="得分",y="均价",color="均价",size="均价",text="中文名")
fig.update_traces(textposition="top center")
fig.show()

推荐一家店:小杨烤肉(明德门店),整体得分第一,价格上挺实惠😃

店铺

统计了西安几种不同店铺的数量,看下具体的数据:

代码语言:txt
AI代码解释
复制
shops = pd.DataFrame({
    "name":["面馆","biangbiang面","裤带面","馍","肉夹馍","泡馍","串串","烤肉","凉皮","清真"],
    "number":[116,11,10,87,36,38,32,57,19,42]
})

shops
代码语言:txt
AI代码解释
复制
c = (
    Pie()
    .add("", [list(z) for z in zip(shops["name"].tolist(), shops["number"].tolist())])
    .set_global_opts(title_opts=opts.TitleOpts(title="西安店铺"))
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)

c.render_notebook()
推荐菜词云图

最后我们看看游客都推荐了哪些美食?将店铺的中文名和推荐菜做成了词云图:

代码语言:txt
AI代码解释
复制
name_list = df1["中文名"].tolist()
recommand_list = df1[df1["推荐菜"] != "无"]["推荐菜"].tolist()
lst = name_list + recommand_list

# 分词过程
rec_jieba_list = []
for i in range(len(lst)):
  	# jieba分词
    seg_list = jieba.cut(str(lst[i]).strip(), cut_all=False)
    for each in list(seg_list):
        rec_jieba_list.append(each)

# 词频统计
rec_result = pd.value_counts(rec_jieba_list)[5::].to_frame().reset_index().rename(columns={"index":"词语",0:"次数"})

# 词云图
rec_words = [tuple(z) for z in zip(rec_result["词语"].tolist(), rec_result["次数"].tolist())]

c = (
    WordCloud()
    .add("", rec_words, word_size_range=[20, 80], shape=SymbolType.DIAMOND)
    .set_global_opts(title_opts=opts.TitleOpts(title="西安美食推荐菜词云"))
)

c.render_notebook()

取出前50个词语,再看看效果:

代码语言:txt
AI代码解释
复制
# 取出前100个词语

rec_words = [tuple(z) for z in zip(rec_result["词语"].tolist(), rec_result["次数"].tolist())]

c = (
    WordCloud()
    .add("", rec_words[:50], word_size_range=[20, 80], shape=SymbolType.DIAMOND)
    .set_global_opts(title_opts=opts.TitleOpts(title="西安美食推荐菜词云图"))
)

c.render_notebook()

从词云图中我们也可以看到陕西西安人的美食和饮食特点:面食为主。

我们可以对比下成都美食的词云图,发现成都人都是各种肉类,火锅料

总结

通过分析西安的美食数据,推荐几家店铺:

  1. 烤面筋:小魏哥秘制果仁烤面筋
  2. biangbiang面:郑大妈biangbiang面(南院门店)
  3. 凉皮:魏家凉皮,在西安很多连锁店
  4. 肉夹馍:樊家腊汁肉夹馍(西五路店)
  5. 串串:佰人王串串香

尤而小屋,一个温馨的小屋。小屋主人,一手代码谋求生存,一手掌勺享受生活,欢迎你的光临😃

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
高级可视化神器Plotly玩转散点图
之前介绍过一篇文章介绍酷炫!36张图爱上高级可视化神器Plotly_Express,文章中介绍了大量基于plotly绘制的各种图形,例子多而不精。本文开始将会详细介绍基于Plotly绘制的各种图形,Plotly绘图主要是两个模块:
皮大大
2021/04/07
2.4K0
高级可视化神器Plotly玩转散点图
pandas使用技巧总结
方式2:从本地文件中读取进来。现在本地有一个文件:学生信息.xlsx直接通过pd.read_excel()读进来:
皮大大
2021/03/10
6800
可视化神器Plotly玩转矩形树状图
今天给大家带来的是一篇关于Plotly绘图的文章:如何使用Plotly来绘制矩形树状图
皮大大
2021/10/14
2.7K0
可视化神器Plotly玩转矩形树状图
plotly-express-24-绘制漏斗图
上面的例子是通过plotly_express实现的,如何使用graph_objects 实现呢?
皮大大
2021/03/27
1.1K0
plotly-express-24-绘制漏斗图
Pandas数据分析经典案例
本案例中用的数据是小编自行模拟的,主要包含两个数据:订单数据和水果信息数据,并且会将两份数据合并
皮大大
2022/01/12
2K1
Pandas数据分析经典案例
Plotly+Seaborn+Folium:爱彼迎租房数据可视化探索
Airbnb是AirBed and Breakfast ( “Air-b-n-b” )的缩写,中文名称之为:空中食宿,是一家联系旅游人士和家有空房出租的服务型网站,可以为用户提供各式各样的住宿信息。
皮大大
2022/01/12
9490
Plotly+Seaborn+Folium:爱彼迎租房数据可视化探索
利用Python搞定json数据<建议收藏>
在实际工作中,尤其是web数据的传输,我们经常会遇到json数据。它不像常见的文本数据、数值数据那样友好,而且它和Python中的字典类型数据又很相像,给很多人造成了困扰。
皮大大
2021/02/27
2.6K0
腾讯携手秦陵发布智慧导览 助力秦陵数字化升级走上“快车道”
6月8日,适逢“文化和自然遗产日”,由腾讯和秦始皇帝陵博物院(以下简称秦陵)联合主办的“寻迹始皇陵”产品发布会在西安举行,腾讯公司副总裁钟翔平、秦始皇帝陵博物院院长侯宁彬共同出席发布会。 腾讯秦陵产品发布仪式 在数字化时代,双方强强联手进一步深化合作,用科技手段扩大秦陵在全国乃至世界范围的影响力。 而腾讯文旅以数字化助手的角色,提供智慧化的文旅解决方案,助力文旅产业的智慧升级。 本次发布会以“数字文博 智游秦陵”为主题,秦陵博物院持续用互联网技术提供多样化的文化服务与观览体验,让公众从另一个角度认
腾讯文旅
2020/06/17
7360
机器学习实战-KNN算法实战-网站约会配对
海伦女士一直在使用约会网站来寻找适合自己的约会对象。尽管约会网站会推荐不同的人选,但是海伦不是喜欢每个人。经过一番的总结,她发现自己喜欢过3个类型的人:
皮大大
2021/02/28
1.5K0
机器学习实战-KNN算法实战-网站约会配对
创建DataFrame:10种方式任你选!
在上一篇文章中已经介绍过pandas中两种重要类型的数据结构:Series类型和DataFrame类型,以及详细讲解了如何创建Series的数据。
皮大大
2021/05/12
4.9K0
创建DataFrame:10种方式任你选!
“盘活”故宫、敦煌、秦陵…腾讯用了哪些法宝?
6月8日,是“文化和自然遗产日”,在这一天,在中国的古都西安,一个混血儿诞生了:代表着科技与新时代的腾讯地图及腾讯文旅,和代表着历史与文化传承的秦始皇帝陵博物院,联合上线了一款名为「寻迹始皇陵」的智慧导览小程序。 这是一次科技和历史的结合,除了国内,在全球范围都在上演。 最近举世闻名的案例就是,十万只LED的数位灯和近七百八十盏特殊照明灯具,耗时两年,为从文艺复兴时期以来一直是天主教标志的世界知名的梵蒂冈圣彼得/伯多禄大教堂(Basilica di San Pietro)披上了新衣,新的照明技
腾讯文旅
2020/06/17
4740
Plotly+Pandas+Sklearn:打响kaggle第一枪
很多读者问过我:有没有一些比较好的数据分析、数据挖掘的案例?答案是当然有,都在Kaggle上啦。
皮大大
2021/11/26
4630
Plotly+Pandas+Sklearn:打响kaggle第一枪
12大Pandas配置技巧
在Pandas的使用过程中,除了数据,我们更多的就是和表格打交道。为了更好地展示一份表格数据,必须前期有良好的设置。
皮大大
2021/12/15
8130
12大Pandas配置技巧
【旅游景点分析】--从数据搜集到清洗再到可视化呈现
近两年由于日本签证放宽了许多,许多小伙伴出国游会选择日本作为目的地,同时现在许多旅游平台都有一站式服务,所以大多旅客会选择自助游,那么自助游便会涉及到“酒店、机票、火车票、攻略、景点门票、租车、美食、购物”的需求,这种一站式需求目前做的比较好的有:携程、去哪儿旅行、同程、途牛等旅游平台,客路从服务上看主打国外自由行,在景点、小团游、独特体验、美食、交通五大方面给到用户推荐和选择,现从客路的五大活动入手分析自助旅游不可错过的攻略,Let's go~
1480
2019/06/02
1.4K0
腾讯发布2023年春节出行大数据:一二线城市流动性增强,西湖等5A级景区热度飙升
1月28日,腾讯位置服务通过大数据对春节期间的返乡、返城、旅游等出行情况进行了观测。大数据展现了兔年春节假期期间的国民出行选择,在一定程度上体现了相比过去三年,国民出行新的变化趋势。 城市人口迁徙:一二线城市流动性明显增强,部分火车站人流量或接近翻倍 过去三年,由于各地方返乡管理政策等因素,春节期间就地过年成为了很多人的选择。腾讯位置服务选取直辖市、省会等一二线城市,对今年春节假期的人口流动情况进行了观测。 大数据显示,成都、广州、重庆成为流动性最高的三个城市,迁出和迁入人口均位居前列,西安、上海、深圳
腾讯文旅
2023/01/31
1K0
腾讯发布2023年春节出行大数据:一二线城市流动性增强,西湖等5A级景区热度飙升
腾讯数字生态大会落地西安,产业互联网布局向西部拓展
12月1日,腾讯在To B领域的重磅会议腾讯全球数字生态大会将开启城市峰会,并将首站落地西安。 大会将“数字优先”的理念深入西安,以“数字未来,产业共进”为主题围绕数字新经济、产业新格局、云端新生态三大核心议题展开,并设置了七大行业专场论坛,以打造智慧西安为出发点,辐射整个西部地区,与合作伙伴共话数字产业发展之道。 围绕数字新经济,高新区作为西安市经济增长极,率先与腾讯牵手合作共同尝试腾讯WeCity未来城市解决方案的落地,在驱动西安经济高质量发展的同时,为西北地区智慧城市发展树立标杆。同时,腾讯云计
腾讯文旅
2020/11/25
7260
不止兵马俑、BiangBiang面,腾讯来到西安开讲“科技+文旅”新故事
从历史古迹兵马俑到打卡必备摔碗酒,再到红遍大江南北的不倒翁小姐姐,作为当前最热门的旅游城市之一,西安正以独特的历史底蕴融合流行文化,进行文旅产业升级。 12月1日,腾讯全球数字生态大会落地西安,在智慧文旅专场上,文旅行业领军人物、腾讯文旅相关专家齐聚,针对科技与文旅如何加快融合,西安大西北文旅产业将有哪些新趋势,进行了丰富的讨论。 腾讯云副总裁、腾讯文旅总裁曾佳欣表示,西安作为丝绸之路起点城市、“一带一路”核心区,打造国际化的数字文旅产业体系势在必行。 当下伴随疫情的有效防控,全国各地景区、乐园正
腾讯文旅
2020/12/03
5890
​14种方式,34个案例:对比SQL,学习Pandas操作
在SQL中查询数据的时候我们所有各种操作,主要是通过select、where、group by等多个关键词的组合查询来实现的。本文中介绍的如何在相同的需求下,通过pandas来实现取数操作。
皮大大
2021/08/23
5020
可视化神器Plotly的图例Legend详解
很久没有更新Plotly相关的文章,国庆这几天终于干了一篇。选择的主题是:玩转Plotly图例设置,也是一直以来都想写的一个话题,文章的主要内容为:
皮大大
2021/10/07
2.6K0
用Python分析了5万条相亲网站数据,看相亲男女画像
数据来源:http://www.zhenai.com/zhenghun/ 本文利用 Python 分析了按城市寻找所有地区的征婚信息,看看相亲男女的画像。
叶庭云
2021/03/02
5280
用Python分析了5万条相亲网站数据,看相亲男女画像
推荐阅读
相关推荐
高级可视化神器Plotly玩转散点图
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档