【python】数据分析实战:分析全国旅游景点数据,暑假还不知道去哪玩的看过来
前言
暑假是学生老师们拥有的最长假期,这么长的假期,光待在家里太浪费了,何不选择一个好去处,欣赏欣赏夏季的美景?当然,并不是所有地方都适合这个时节去的,那么,暑假适合去国内那些地方旅游呢?现在我们学习了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】数据分析实战:分析全国旅游景点数据,暑假还不知道去哪玩的看过来相关推荐
- 用Python爬取分析全国旅游数据
前言: Python对于本人来讲也是一个在逐渐学习掌握的过程,这次的内容就从旅游开始讲起,进入正文前首先附(fang)上(du)最令我垂涎欲滴的海鲜盛宴. 数据爬取: 最近几天朋友圈被大家的旅行足迹刷 ...
- Python数据分析实战,,美国总统大选数据可视化分析[基于pandas]
目录 前言 一.任务详情 二.数据集来源 三.实现过程 四.运行代码 前言 在学习Python数据分析的过程中,是离不开实战的. 今天跟大家带来数据分析可视化经典项目,美国总统大选数据可视化分析,希望 ...
- 你的城市撒币了吗?Python 爬取分析全国消费券发放数据
作者 | 刘早起 来源 | 早起Python(ID: zaoqi-python) 近期,全国多地以各种形式投放消费券.消费补贴来鼓励消费,部分城市在首期消费券的基础上,连续追加发放多期消费券.你在的城 ...
- python爬取旅游信息_用Python爬取分析全国旅游数据-Go语言中文社区
前言: Python对于本人来讲也是一个在逐渐学习掌握的过程,这次的内容就从旅游开始讲起,进入正文前首先附(fang)上(du)最令我垂涎欲滴的海鲜盛宴. 数据爬取: 最近几天朋友圈被大家的旅行足迹刷 ...
- 400 bad request什么意思_成都什么样的酒店最流行?——Python数据分析实战之成都酒店分布数据...
前言 一个物理学院核工程与核技术专业的学生,对Python爬虫和数据分析技术的痴迷,完成一项全样本数据爬取.清洗和分析的整个数据分析过程,本项目重点体现:在海量数据的获取和清洗,而Python正是你手 ...
- Python数据分析实战:使用pyecharts进行数据可视化
开始使用 基本套路就是先创建一个你需要的空图层,然后使用.set_global_opts修改全局项再用.set_series_opts修改具体的相关配置就可以.当然最好的学习地址一定是官方文档,但是里 ...
- python酒店数据分析_Python数据分析 I 全国旅游景点分析案例,哪里好玩一目了然...
原标题:Python数据分析 I 全国旅游景点分析案例,哪里好玩一目了然 前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作 ...
- 2020互联网数据分析师教程视频 统计学分析与数据实战 r语言数据分析实战 python数据分析实战 excel自动化报表分析实战 excel数据分析处理实战
2020互联网数据分析师教程视频 统计学分析与数据实战 r语言数据分析实战 python数据分析实战 excel自动化报表分析实战 excel数据分析处理实战
- python处理excel表格数据-利用Python处理和分析Excel表中数据实战.doc
利用Python处理和分析Excel表中数据实战 [利用python进行数据分析--基础篇]利用Python处理和分析Excel表中数据实战 原创 2017年06月28日 15:09:32 标签: p ...
最新文章
- Angular 表单验证类库 ngx-validator 1.0 正式发布
- Ansible初始连接被控端配置
- FTP 500 OOPS
- ubuntu多版本python和pip切换
- OpenCV cv::CascadeClassifier人脸检测的实例(附完整代码)
- 流控制、FlowControl
- 如何启用SAP C4C OData Event Notification
- python __call__一般用在哪些地方_Python __call__内置函数的作用和用法
- [WPS笔试题]实现栈的push,pop,max且时间复杂度为O(1)
- codeproject 调试技巧 学习笔记
- 第一个计算机病毒出现在哪个年代,计算机病毒最早是由什么提出的
- [二维压缩] | 条件图像游程编码
- URL 编码 - 从 %00 到 %ff
- 【论文笔记】Weakly Supervised Discriminative Feature Learning with State Information for Person ...
- 我在哪?要到哪里去?怎么去?
- [配置] 修改路由器的名称
- 机器人螺栓拆装_机器人拧螺栓:重庆高端装备制造企业的转型之路
- getElementsByTagName用法详解
- 计算机网络自顶向下方法第四章笔记
- 无刷无感直流电机驱动硬件分析