多彩贵州基于Python的旅游分析

  多彩贵州城指在贵州文化旅游开设的一个对外交流的门户,展示贵州的风土人情、多样的自然生态景观和多彩的多民族原生态文化,而今天作为一个初级数据分析人员,使用Python技术来展示多彩贵州在2022年的在旅游数据的可视化和分析。欢迎大家来我们贵州玩耍!!!

分析所需的数据和一下材料,百度网盘打开即可:

链接:https://pan.baidu.com/s/1FIx3yKEg6CnQXNXLCrFEAw 
提取码:GGZZ

使用工具:Jupyter Notebooks 推荐查看链接自主下载和学习:anaconda及jupyter安装配置

1.导入需要的包

!pip install --upgrade pyecharts
#升级 pyecharts 包,地图显示部分需要用到 pyecharts==1.9.0以上版本
import jieba#中文分词处理
import pandas as pd #数据处理库
from collections import Counter#数据统计库
from pyecharts.charts import Line,Pie,Scatter,Bar,Map,Grid#pyecharts数据可视化
from pyecharts.charts import WordCloud
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from pyecharts.globals import SymbolType
from pyecharts.commons.utils import JsCode

如果安装jieba包发现安装不了可以参考这个链接:Anaconda-Python安装jieba库,我之前一直下不了jieba包就是用这个方法才可以的。

2.数据处理

2.1读取贵州景点的数据集

guizhou = pd.read_excel('F:\桌面\贵州景点.xlsx')
guizhou.head()

读取地址主要取决于你把excel文档放在那个位置了,这里我就放在了桌面上了。

2.2运用info()和shape查看贵州旅游景点数据集的索引和数据类型

guizhou.info()

guizhou.shape #查看数据集有几行几列

 2.3查看贵州旅游景点数据集的数值型列汇总统计

guizhou.describe()

 从describe可以得出结论有三种数字型数据,分别是评分价格销量。

2.4查看销售量大于0的行

guizhou.loc[guizhou['销量']>0,:].head(75)

 

 得出结论贵州的75个旅游景点均有游客观光,说明贵州的旅游行业比较稳定。

2.5统计各特征的空值,分析星级

guizhou.isnull().sum()

可以看出数据非常完整,只有星级有空值,中华人民共和国旅游景区质量等级划分的景区级别,共分为五级,从高到低依次为AAAAA、AAAA、AAA、AA、A级五级,其中景区暂时达不到国家要求或新建景区等级划分暂时为空。
本次统计的数据集仅为贵州最著名的75个景区,其中56个国家级(4A和5A占大部分,并全为3A以上),19个暂未评定,可以确定贵州是全国比较有名气的旅游省份

2.5.1将没有星级的景区用‘待定’来填入

guizhou['星级'].fillna('待定', inplace=True)
guizhou.isnull().sum()

 作用:可靠性高,方便进行数据分析

2.6按销量排序查看那些景区的热度较高(从高到低)

guizhou.sort_values('销量' , ascending=False).head(75)

 可以得出黔东南苗族侗族自治州的西江千户苗寨最高,而遵义市的思达遵义游乐园销量惨淡

3.数据可视化和分析

3.1查找贵州销售前20热门景点数据

color = """new echarts.graphic.LinearGradient(0,0,1,0,
    [{offset: 0, color: '#87CEFA'}, {offset: 1, color: '#00BFFF'}], false)"""


sort_info = guizhou.sort_values(by='销量', ascending=True)
b1 = (
    Bar()
    .add_xaxis(list(sort_info['名称'])[-20:])
    .add_yaxis('贵州热门景点销量', sort_info['销量'].values.tolist()[-20:], itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color)))
    .reversal_axis()
    .set_global_opts(
        title_opts=opts.TitleOpts(title='贵州热门景点销量数据'),
        yaxis_opts=opts.AxisOpts(name='景点名称'),
        xaxis_opts=opts.AxisOpts(name='销量'),
    )
       .set_series_opts(label_opts=opts.LabelOpts(position="right"))
 
)
# 将图形整体右移
g1 = (
    Grid()
    .add(b1, grid_opts=opts.GridOpts(pos_left='20%', pos_right='5%'))
)
g1.render_notebook()

这些景点都值得一去,说走就走的旅行这不就来了嘛 

3.2假期出行数据贵州地图分布(以销量为例)

guizhou_tmp = guizhou[['城市' , '销量']]
guizhou_counts = guizhou_tmp.groupby('城市').sum()

m1 = (
        Map()
        .add('贵州假期出行分布', [list(z) for z in zip(guizhou_counts.index.values.tolist(), guizhou_counts.values.tolist())], '贵州')
        .set_global_opts(
        title_opts=opts.TitleOpts(title='贵州假期出行数据地图分布'),
        visualmap_opts=opts.VisualMapOpts(max_=4000, is_piecewise=False,range_color=["white", "#87CEFA", "#00BFFF"]),
        )
    )
m1.render_notebook()

可以看出在贵州的东南方向的景点,占据大头

 

3.3多彩贵州的各城市的4A-5A景区数量柱状图

guizhou_tmp2 =guizhou[guizhou['星级'].isin(['4A', '5A'])]
guizhou_counts = guizhou_tmp2.groupby('城市').count()['星级']
b2 = (
        Bar()
            .add_xaxis(guizhou_counts.index.values.tolist())
            .add_yaxis('4A-5A景区数量',                              #这里的color在3.1中guizhou_counts.values.tolist(),itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color)))

            .set_global_opts(
            title_opts=opts.TitleOpts(title='贵州省各城市4A-5A景区数量'),
            datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_='inside')],
        )
    )
b2.render_notebook()

 

 安顺市、贵阳市和铜仁市在贵州省的4A-5A景点中占据大多数

3.4多彩贵州的4A-5A景区数量玫瑰图

guizhou007 = guizhou_counts.copy()
guizhou007.sort_values(ascending=False, inplace=True)
c1 = (
    Pie()
    .add('', [list(z) for z in zip(guizhou007.index.values.tolist(), guizhou007.values.tolist())],
         radius=['30%', '100%'],
         center=['50%', '60%'],
         rosetype='area',
         )
    .set_global_opts(title_opts=opts.TitleOpts(title='有星级的地区景点数量'),
                     legend_opts=opts.LegendOpts(is_show=False),
                     toolbox_opts=opts.ToolboxOpts())
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True, position='inside', font_size=12,
                                               formatter='{b}: {c}', font_style='italic',
                                               font_weight='bold', font_family='Microsoft YaHei'
                                               ))
)
c1.render_notebook()

3.5多彩贵州4A-5A景区地图分布

 

guizhou_tmp3 = guizhou[guizhou['星级'].isin(['4A', '5A'])]
guizhou_counts = guizhou_tmp3.groupby('城市').count()['星级']
m2 = (
    Map()
    .add('贵州省4A-5A景区分布', [list(z) for z in zip(guizhou_counts.index.values.tolist(), guizhou_counts.values.tolist())], '贵州')
    .set_global_opts(
    title_opts=opts.TitleOpts(title='贵州省地图数据分布'),
    visualmap_opts=opts.VisualMapOpts(max_=12, is_piecewise=True),
    )
)
m2.render_notebook()

 3.6多彩贵州门票价格区间和占比玫瑰图

price_level = [0, 50, 100, 150, 200, 250, 300, 350, 400, 500]    
label_level = ['0-50', '50-100', '100-150', '150-200', '200-250', '250-300', '300-350', '350-400', '400-500']    
jzmj_cut = pd.cut(guizhou['价格'], price_level, labels=label_level)        
guizhou_price = jzmj_cut.value_counts()
guizhou_price  #门票价格文本统计

 可以看出门票价格的性价比还是非常高的

p1 = (
    Pie(init_opts=opts.InitOpts(
            width='800px', height='600px',
            )
       )
        .add(
        '',
        [list(z) for z in zip(guizhou_price.index.tolist(), guizhou_price.values.tolist())],
        radius=['20%', '60%'],
        center=['40%', '50%'],
        rosetype='radius',
        label_opts=opts.LabelOpts(is_show=True),
        )    
        .set_global_opts(title_opts=opts.TitleOpts(title='门票价格占比',pos_left='33%',pos_top="5%"),
                        legend_opts=opts.LegendOpts(type_='scroll', pos_left="80%",pos_top="25%",orient="vertical")
                        )
        .set_series_opts(label_opts=opts.LabelOpts(formatter='{b}: {c} ({d}%)'),position='outside')
    )
p1.render_notebook()#门票价格占比玫瑰图

 3.7多彩贵州景点的词云

contents = "".join('%s' % i for i in guizhou['简介'].values.tolist())
contents_list = jieba.cut(contents)
ac = Counter(contents_list)
 
stopwords = []
with open('F:\桌面\stopwords.txt', "r",encoding='utf-8') as f:  
    data = f.read()  # 读取文件
    stopwords = data.split('\n')
 
for i in stopwords:
    del ac[i]
 
w1 = (
    WordCloud()
    .add("", 
         ac.most_common(150), 
         word_size_range=[5, 100], 
         textstyle_opts=opts.TextStyleOpts(font_family="cursive"),
        shape='star')
    .set_global_opts(title_opts=opts.TitleOpts(title="景点简介词云"))
)
w1.render_notebook()

 最后欢迎大家来我们贵州游玩,谢谢!!!

 

  • 8
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
基于Python的云南旅游景点分析可以通过以下步骤实现: 1. 数据收集:收集云南旅游景点的相关数据,包括景点名称、地理位置、评分、评论等信息。可以通过爬虫技术从互联网上获取数据,或者使用已有的开放数据集。 2. 数据清洗和预处理:对收集到的数据进行清洗和预处理,包括去除重复数据、处理缺失值、转换数据格式等。可以使用Python的数据处理库(如Pandas)来进行数据清洗和预处理。 3. 数据可视化:使用Python数据可视化库(如Matplotlib、Seaborn)对数据进行可视化分析,可以绘制各个景点的评分分布图、热力图等,以便更直观地了解景点的特点和分布情况。 4. 数据分析:根据需求进行数据分析,可以使用Python的统计分析库(如NumPy、SciPy)进行数据分析,比如计算景点评分的平均值、方差等统计指标,进行景点之间的比较和排名。 5. 结果展示:将分析结果进行展示,可以使用Python的可视化库(如Plotly、Folium)生成交互式地图,展示各个景点的位置和评分信息,以及其他相关的分析结果。 下面是一个示例代码,用于对云南旅游景点评分进行可视化分析: ```python import pandas as pd import matplotlib.pyplot as plt # 读取数据 data = pd.read_csv('景点数据.csv') # 绘制评分分布直方图 plt.hist(data['评分'], bins=10, edgecolor='black') plt.xlabel('评分') plt.ylabel('景点数量') plt.title('云南旅游景点评分分布') plt.show() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苦B乘虚猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值