前言

暑假是学生老师们拥有的最长假期,这么长的假期,光待在家里太浪费了,何不选择一个好去处,欣赏欣赏夏季的美景?当然,并不是所有地方都适合这个时节去的,那么,暑假适合去国内那些地方旅游呢?现在我们学习了python,当然要用不一样的方式来选择旅游景点,利用大数据的神奇之处,我们一起来分析全国的旅游景点数据,选出最佳旅游景点。


旅游出行数据分析

一、读入数据

1、导入包

import numpy as np
import pandas as pd
import os
from pyecharts.charts import Bar, Pie, Map, Page, BMap, Scatter
from pyecharts import options as opts

2、获取文件路径

data_files = os.listdir('E:/py练习/数据分析/旅游网站数据/data/')

3、循环读取

df_all = pd.DataFrame()
for file in data_files:df_one = pd.read_excel('E:/py练习/数据分析/旅游网站数据/data/{}'.format(file))df_all = df_all.append(df_one, ignore_index=True)
df_all.head()


二、数据清洗和数据预处理

1、复制一份并删除重复值

df_qa = df_all.copy()df_qa.drop_duplicates(inplace=True)
df_qa.shape

2、提取省份

df_qa['province'] = df_qa.districts.str.split('·').apply(lambda x:x[0])

3、计算销售额

df_qa['sales_volume'] = df_qa['saleCount'] * df_qa['qunarPrice']
df_qa.head()


三、数据可视化

1、各星级景点数量

# 1. 景点星级分布
star_num = df_qa['star'].value_counts() # 数据对
data_pair = [list(z) for z in zip(star_num.index, star_num.values.tolist())]# 饼图
pie1 = Pie(init_opts=opts.InitOpts(width='900px', height='750px'))
pie1.add( series_name="num",radius=["35%", "60%"],data_pair=data_pair,label_opts=opts.LabelOpts(position="outside",formatter="{a|{a}}{abg|}\n{hr|}\n {b|{b}: }{c}  {per|{d}%}  ",background_color="#eee",border_color="#aaa",border_width=1,border_radius=4,rich={"a": {"color": "#999", "lineHeight": 22, "align": "center"},"abg": {"backgroundColor": "#e3e3e3","width": "100%","align": "right","height": 22,"borderRadius": [4, 4, 0, 0],},"hr": {"borderColor": "#aaa","width": "100%","borderWidth": 0.5,"height": 0,},"b": {"fontSize": 16, "lineHeight": 33},"per": {"color": "#eee","backgroundColor": "#334455","padding": [2, 4],"borderRadius": 2,},},),
)
pie1.set_global_opts(legend_opts=opts.LegendOpts(pos_left="left", pos_top='30%', orient="vertical"), title_opts=opts.TitleOpts(title='全国景点星级分布'))
pie1.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger="item", formatter="{a} <br/>{b}: {c} ({d}%)"))
pie1.render_notebook()

2、全国各省份景点数量Top15

# 国内城市top10
city_top10 = df_qa.province.value_counts()[:15]# 条形图
bar1 = Bar(init_opts=opts.InitOpts(width='900px', height='750px'))
bar1.add_xaxis(city_top10.index.tolist())
bar1.add_yaxis("省份", city_top10.values.tolist())
bar1.set_global_opts(title_opts=opts.TitleOpts(title="全国景点数量Top10"),visualmap_opts=opts.VisualMapOpts(max_=1200))
bar1.render_notebook()

3、各省份销量热力图

saleCount_num = df_qa.groupby('province')['saleCount'].sum().sort_values(ascending=False) # 地图
map1 = Map(init_opts=opts.InitOpts(width='1350px', height='750px'))
map1.add("", [list(z) for z in zip(saleCount_num.index.tolist(), saleCount_num.values.tolist())],maptype='china')
map1.set_global_opts(title_opts=opts.TitleOpts(title='各省份销量热力图'),visualmap_opts=opts.VisualMapOpts(max_=80000))
map1.render_notebook()

4、景点门票销量排行分析Top20

sales_rank = df_qa.pivot_table(index='sightName', values='saleCount', aggfunc='mean')
sales_rank = sales_rank.reset_index()
sales_rank['saleCount'] = sales_rank['saleCount'].astype('int')
sales_rank = sales_rank.sort_values('saleCount', ascending=False)[:20]
sales_rank = sales_rank.sort_values('saleCount', ascending=True) bar2 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px'))
bar2.add_xaxis(sales_rank.sightName.tolist())
bar2.add_yaxis("景点", sales_rank.saleCount.tolist())
bar2.set_global_opts(title_opts=opts.TitleOpts(title="景点门票销量排行分析Top20"))
bar2.set_series_opts(label_opts=opts.LabelOpts(position='right'))
bar2.set_colors(['#D02C2A'])
bar2.reversal_axis()
bar2.render_notebook()

5、景点门票销售额排行分析Top20

sales_rank_2 = df_qa.pivot_table(index='sightName', values='sales_volume', aggfunc='mean')
sales_rank_2 = sales_rank_2.reset_index()
sales_rank_2['sales_volume'] = sales_rank_2['sales_volume'].astype('int')
sales_rank_2 = sales_rank_2.sort_values('sales_volume', ascending=False)[:20]
sales_rank_2 = sales_rank_2.sort_values('sales_volume', ascending=True) bar3 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px'))
bar3.add_xaxis(sales_rank_2.sightName.tolist())
bar3.add_yaxis("景点", sales_rank_2.sales_volume.tolist())
bar3.set_global_opts(title_opts=opts.TitleOpts(title="景点门票销售额排行分析Top20"))
bar3.set_series_opts(label_opts=opts.LabelOpts(position='right'))
bar2.set_colors(['#D02C2A'])
bar3.reversal_axis()
bar3.render_notebook()


结语


这里就没有带小伙伴一起从爬旅游网站的数据开始做了,本次爬取的旅游网站数据是去哪儿网的数据,如果还有不会爬虫的小伙伴可以去看我以前的博客python0基础爬虫实战,如果有小伙伴想偷懒,也可以直接私信林哥,林哥可以直接把数据给到大家,大家可以尝试着做一做这个项目,可以尝试不同的风格,不同的色彩,做出来还是挺有成就感的。
喜欢林哥的文章可以给林哥点点关注,一键三连,以后林哥会经常出一些干货来帮助大家学习编程
愿大家都能在编程这条路,越走越远。

【python】数据分析实战:分析全国旅游景点数据,暑假还不知道去哪玩的看过来相关推荐

  1. 用Python爬取分析全国旅游数据

    前言: Python对于本人来讲也是一个在逐渐学习掌握的过程,这次的内容就从旅游开始讲起,进入正文前首先附(fang)上(du)最令我垂涎欲滴的海鲜盛宴. 数据爬取: 最近几天朋友圈被大家的旅行足迹刷 ...

  2. Python数据分析实战,,美国总统大选数据可视化分析[基于pandas]

    目录 前言 一.任务详情 二.数据集来源 三.实现过程 四.运行代码 前言 在学习Python数据分析的过程中,是离不开实战的. 今天跟大家带来数据分析可视化经典项目,美国总统大选数据可视化分析,希望 ...

  3. 你的城市撒币了吗?Python 爬取分析全国消费券发放数据

    作者 | 刘早起 来源 | 早起Python(ID: zaoqi-python) 近期,全国多地以各种形式投放消费券.消费补贴来鼓励消费,部分城市在首期消费券的基础上,连续追加发放多期消费券.你在的城 ...

  4. python爬取旅游信息_用Python爬取分析全国旅游数据-Go语言中文社区

    前言: Python对于本人来讲也是一个在逐渐学习掌握的过程,这次的内容就从旅游开始讲起,进入正文前首先附(fang)上(du)最令我垂涎欲滴的海鲜盛宴. 数据爬取: 最近几天朋友圈被大家的旅行足迹刷 ...

  5. 400 bad request什么意思_成都什么样的酒店最流行?——Python数据分析实战之成都酒店分布数据...

    前言 一个物理学院核工程与核技术专业的学生,对Python爬虫和数据分析技术的痴迷,完成一项全样本数据爬取.清洗和分析的整个数据分析过程,本项目重点体现:在海量数据的获取和清洗,而Python正是你手 ...

  6. Python数据分析实战:使用pyecharts进行数据可视化

    开始使用 基本套路就是先创建一个你需要的空图层,然后使用.set_global_opts修改全局项再用.set_series_opts修改具体的相关配置就可以.当然最好的学习地址一定是官方文档,但是里 ...

  7. python酒店数据分析_Python数据分析 I 全国旅游景点分析案例,哪里好玩一目了然...

    原标题:Python数据分析 I 全国旅游景点分析案例,哪里好玩一目了然 前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作 ...

  8. 2020互联网数据分析师教程视频 统计学分析与数据实战 r语言数据分析实战 python数据分析实战 excel自动化报表分析实战 excel数据分析处理实战

    2020互联网数据分析师教程视频 统计学分析与数据实战 r语言数据分析实战 python数据分析实战 excel自动化报表分析实战 excel数据分析处理实战

  9. python处理excel表格数据-利用Python处理和分析Excel表中数据实战.doc

    利用Python处理和分析Excel表中数据实战 [利用python进行数据分析--基础篇]利用Python处理和分析Excel表中数据实战 原创 2017年06月28日 15:09:32 标签: p ...

最新文章

  1. Angular 表单验证类库 ngx-validator 1.0 正式发布
  2. Ansible初始连接被控端配置
  3. FTP 500 OOPS
  4. ubuntu多版本python和pip切换
  5. OpenCV cv::CascadeClassifier人脸检测的实例(附完整代码)
  6. 流控制、FlowControl
  7. 如何启用SAP C4C OData Event Notification
  8. python __call__一般用在哪些地方_Python __call__内置函数的作用和用法
  9. [WPS笔试题]实现栈的push,pop,max且时间复杂度为O(1)
  10. codeproject 调试技巧 学习笔记
  11. 第一个计算机病毒出现在哪个年代,计算机病毒最早是由什么提出的
  12. [二维压缩] | 条件图像游程编码
  13. URL 编码 - 从 %00 到 %ff
  14. 【论文笔记】Weakly Supervised Discriminative Feature Learning with State Information for Person ...
  15. 我在哪?要到哪里去?怎么去?
  16. [配置] 修改路由器的名称
  17. 机器人螺栓拆装_机器人拧螺栓:重庆高端装备制造企业的转型之路
  18. getElementsByTagName用法详解
  19. 计算机网络自顶向下方法第四章笔记
  20. 无刷无感直流电机驱动硬件分析

热门文章

  1. Mem Reduct——最专一的电脑清理软件
  2. Centos配置CA(证书颁发机构)
  3. Springboot 实现api校验和登录验证
  4. ArtyA7的Hello Word创建Microblaze嵌入式系统硬件工程的问题解决
  5. Qt面试笔试题问答经验总结
  6. dellR730ch插拔sdka
  7. js 汉字转换成拼音
  8. Mac下matplotlib显示中文(不用安装字体)
  9. 【洛谷】P1593 因子和
  10. 实战EM算法与图像分割