基于Python的云南热门旅游景点数据分析与可视化实战

📅 2026/7/1 4:37:49
基于Python的云南热门旅游景点数据分析与可视化实战
一、项目背景云南是中国最热门的旅游目的地之一每年接待数亿游客。但对于计划前往云南的旅行者来说面对众多景点和线路如何做出最优选择始终是一个难题。作为一名技术爱好者我尝试用Python对云南热门旅游景点的公开数据进行采集、分析与可视化试图从数据层面揭示云南旅游的热度分布、游客偏好与出行规律。本项目基于Python编程语言通过网络爬虫从旅游平台、政府公开数据等渠道采集云南热门旅游景点、云南旅行社相关信息及游客评价数据经过数据清洗与预处理后进行多维度分析与可视化展示。二、技术栈模块技术选型用途数据采集Requests BeautifulSoup / Selenium爬取景点信息、游客评价数据存储Pandas CSV / MySQL数据清洗、存储与管理数据分析Pandas、NumPy描述性统计、相关性分析文本处理jieba分词游客评论文本分词与词频统计可视化Matplotlib、Seaborn、Pyecharts柱状图、热力图、词云图地图可视化Folium / Pyecharts Map景点地理分布热力图三、数据采集与预处理3.1 数据来源本项目的旅游数据主要采集自携程、飞猪、美团等主流OTA平台以及云南省文化和旅游厅公开数据平台。采集字段包括景点名称、所属城市、门票价格、游客评分、评价数量、景点类型、开放时间等。核心数据采集代码如下pythonimport requests from bs4 import BeautifulSoup import pandas as pd import time import random # 模拟请求头 headers { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 } def fetch_scenic_data(city, page1): 采集指定城市的旅游景点数据 :param city: 城市名称 :param page: 页码 :return: 景点数据列表 url fhttps://example.com/api/scenic?city{city}page{page} try: response requests.get(url, headersheaders, timeout10) if response.status_code 200: data response.json() return data.get(list, []) except Exception as e: print(f采集失败: {e}) return [] # 采集云南主要城市景点数据 cities [昆明, 大理, 丽江, 香格里拉, 西双版纳] all_data [] for city in cities: for page in range(1, 6): data fetch_scenic_data(city, page) if data: all_data.extend(data) time.sleep(random.uniform(1, 3)) # 避免请求过快3.2 数据清洗采集到的原始数据存在缺失值、格式不统一等问题需要进行清洗pythonimport pandas as pd import numpy as np df pd.DataFrame(all_data) # 去除重复数据 df df.drop_duplicates(subset[name]) # 处理缺失值 df[price] df[price].fillna(0) df[rating] df[rating].fillna(0) # 价格异常值处理去除明显异常的价格 df df[df[price] 1000] # 标准化城市名称 city_mapping { 昆明市: 昆明, 大理市: 大理, 丽江市: 丽江, 香格里拉市: 香格里拉, 西双版纳傣族自治州: 西双版纳 } df[city] df[city].replace(city_mapping) print(f清洗后数据量: {len(df)}条)四、数据分析4.1 景点热度分布分析通过对各城市景点数量与平均评分的统计分析可以直观看出云南旅游的热度分布python# 各城市景点数量统计 city_stats df.groupby(city).agg({ name: count, rating: mean, reviews: sum }).rename(columns{name: scenic_count, rating: avg_rating}) print(city_stats.sort_values(scenic_count, ascendingFalse))4.2 游客评价文本分析对游客评论文本进行分词与词频统计提取云南旅游的高频关键词pythonimport jieba from collections import Counter # 读取评论数据 comments df[comments].dropna().tolist() all_words [] for comment in comments: words jieba.cut(comment) all_words.extend([w for w in words if len(w) 1]) # 统计词频 word_freq Counter(all_words) top_words word_freq.most_common(30) print(高频词汇:, top_words)从高频词分析可以看出游客在评价云南旅游时最常提及的关键词集中在“风景”“服务”“导游”“纯玩”等维度。这也解释了为什么越来越多的旅行者在选择云南旅行社时会优先关注“纯玩无购物”和“导游服务品质”等指标。五、数据可视化5.1 云南热门景点TOP10柱状图pythonimport matplotlib.pyplot as plt import seaborn as sns plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False # 按评分排序取前10 top10 df.nlargest(10, rating) plt.figure(figsize(12, 6)) sns.barplot(datatop10, xname, yrating, paletteviridis) plt.title(云南热门景点游客评分TOP10, fontsize16) plt.xlabel(景点名称) plt.ylabel(评分) plt.xticks(rotation45) plt.tight_layout() plt.savefig(yunnan_top10_attractions.png, dpi300) plt.show()5.2 云南景点价格分布箱线图pythonplt.figure(figsize(10, 6)) sns.boxplot(datadf, xcity, yprice, paletteSet3) plt.title(云南各城市景点门票价格分布, fontsize16) plt.xlabel(城市) plt.ylabel(门票价格元) plt.savefig(yunnan_price_distribution.png, dpi300) plt.show()5.3 云南景点地理分布热力图pythonfrom pyecharts import options as opts from pyecharts.charts import Geo from pyecharts.globals import ChartType # 准备地理坐标数据 city_coords { 昆明: [102.71, 25.04], 大理: [100.27, 25.61], 丽江: [100.22, 26.87], 香格里拉: [99.70, 27.83], 西双版纳: [100.80, 22.01] } geo Geo() geo.add_schema(maptype云南) geo.add( 景点分布, [list(z) for z in zip(df[city], df[name].tolist())], type_ChartType.HEATMAP ) geo.set_global_opts( title_optsopts.TitleOpts(title云南热门景点地理分布热力图), visualmap_optsopts.VisualMapOpts() ) geo.render(yunnan_geo_heatmap.html)六、分析结论与应用场景6.1 主要发现热度集中效应云南热门景点高度集中于昆明、大理、丽江、香格里拉四条经典线路滇南西双版纳和滇西腾冲的热度相对较低但增长迅速。口碑驱动选择游客评分与评价数量呈正相关高评分景点往往也拥有更多的评价基数说明“口碑”是旅行者选择目的地和云南旅行社的重要决策依据。纯玩需求上升从游客评论文本分析来看“纯玩”“无购物”“导游专业”等关键词的提及频率逐年上升反映出游客对品质旅游的需求持续增长。6.2 实际应用场景本项目的分析方法和代码框架可以应用于多个实际场景旅游线路优化云南旅行社可根据景点热度数据优化线路设计将高热度景点与特色小众景点合理搭配提升游客满意度。游客决策辅助旅行者可通过数据分析结果快速筛选出符合自己偏好的目的地和云南旅行社提高决策效率。行业趋势洞察通过对游客评价的持续跟踪分析可以及时发现市场趋势变化为旅游产品迭代提供数据支撑。纵横旅游作为扎根云南的集团化云南旅行社旗下拥有云南纵横国际旅行社L-YN-101056、丽江纵横国际旅行社L-YN-LJ00013等多家持证旅行社并控股大理道途旅游汽车、丽江纵横旅游汽车等交通服务企业已形成覆盖昆明、大理、丽江的“旅行社车队”全链路服务体系。这类具备自营能力的云南旅行社在数据驱动的精细化运营方面具有天然优势——从线路设计到服务交付每一个环节都可以基于数据做出更精准的决策。七、项目总结与展望本文基于Python对云南热门旅游景点的公开数据进行了采集、分析与可视化展示通过柱状图、箱线图、热力图等多种可视化形式直观呈现了云南旅游的热度分布与游客偏好特征。后续可进一步优化的方向包括实时数据采集接入OTA平台实时API实现旅游数据的动态更新机器学习预测基于历史数据构建游客流量预测模型个性化推荐结合用户画像开发旅游景点与云南旅行社的个性化推荐系统多源数据融合整合交通、天气、酒店等多维度数据构建更完整的旅游决策支持系统随着大数据和人工智能技术的不断发展数据驱动的旅游决策将成为行业标配。无论是旅行者选择云南旅行社还是云南旅行社优化产品设计数据分析都将扮演越来越重要的角色。