; 前言
暑假是学生老师们拥有的最长假期,这么长的假期,光待在家里太浪费了,何不选择一个好去处,欣赏欣赏夏季的美景?当然,并不是所有地方都适合这个时节去的,那么,暑假适合去国内那些地方旅游呢? 现在我们学习了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} {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基础爬虫实战,如果有小伙伴想偷懒,也可以直接私信林哥,林哥可以直接把数据给到大家,大家可以尝试着做一做这个项目,可以尝试不同的风格,不同的色彩,做出来还是挺有成就感的。
喜欢林哥的文章可以给林哥点点关注,一键三连,以后林哥会经常出一些干货来帮助大家学习编程
愿大家都能在编程这条路,越走越远。
Original: https://blog.csdn.net/lh576/article/details/119187965
Author: IT林哥
Title: 【python】数据分析实战:分析全国旅游景点数据,暑假还不知道去哪玩的看过来
相关阅读
Title: dirsearch安装+使用+运行问题(小宇特详解)
dirsearch安装+使用+运行问题(小宇特详解)
前几天电脑坏了重新安装了一下dirsearch,却发现好多问题今天写个文章说一下
这里着重说一下我运行时出现的问题
安装
dirsearch是一个用python开发的网站目录扫描工具
github下载地址
我的系统是win10的
我一开始是将这个东西放到过D盘,也放到过python3环境的位置进行了解压
这里两个方式都可
一般解压之后就可以使用
; 使用
使用的方法就是打开dirsearch-master文件后打开cmd命令
打开后运行
python setup.py
安装后运行
python dirsearch.py -u ip
详细用法可以查看帮助
python dirsearch.py -h
运行问题
这里我详细说一下这个问题
首先是缺库问题
这里请看图
解决办法
pip install certifi
后来又出现了
这时用上面的方法来pip的话,我这里出现了问题
这里提示pip版本过低
这里升级pip
这里先查看pip版本
pip -V
然后直接升级pip
D:\python3\python.exe -m pip install --upgrade pip
这里的D:\python3\python.exe是我电脑上的python路径
然后
pip install cryptography
这里又出现问题了
这个问题我找了半天才找到原因。
这里提示连接被中断,一开始没多想觉得时pip被国内的网断了觉得时下面红字提示的找不到满足加密要求的版本的问题
后来我关了我电脑上的代理才解决了问题。这里直接关代理运行上面的pip即可。
希望我走过的坑你们不用再走。
Original: https://blog.csdn.net/xhy18634297976/article/details/122900500
Author: 小宇特详解
Title: dirsearch安装+使用+运行问题(小宇特详解)

医学影像半监督分割–基于数据扰动

Jetson Xavier NX基于YOLOv5+CSI摄像头实现目标检测

Abstractive Dialogue Summarization With Sentence-Gated Modeling Optimized by Dialogue Acts

骨传导耳机哪个牌子好?骨传导耳机排行榜

BN和神经网络调优

Base64编码出现换行符

ImportError: cannot import name ‘get_config‘ from ‘tensorflow.python.eager.context‘

自制AVA数据集工具/slowfast模型训练数据集制作

单目测距原理与实现(代码可运行)

NLP学习D4-李宏毅自然语言处理L1&L2

度秘语音引擎app_三款语音写作App的选择

speechSynthesis没有声音

tf的API学习(01)——Keras

TensorFlow自定义层、模型保存
