广东省旅游景点数据分析全攻略

上一篇我们完成了广东省旅游景点数据的采集,现在让我们一起来探索这些数据背后的故事!

数据准备与清洗

首先,让我们加载数据并进行必要的清洗:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 读取数据
df = pd.read_csv('attractions_data.csv')

# 数据清洗
df['commentScore'] = pd.to_numeric(df['commentScore'], errors='coerce')
df['heatScore'] = pd.to_numeric(df['heatScore'], errors='coerce')
df_cleaned = df[(df['commentScore'] > 0) & (df['heatScore'] > 0)].dropna(subset=['commentScore', 'heatScore'])

🔍 数据清洗要点:

  • 将评分列转换为数值类型
  • 过滤掉评分为0或空值的数据
  • 确保分析数据的质量

📊 景点评分TOP10分析

评论分数 vs 热度分数

# 获取各类TOP10数据
top_comment = df_cleaned.nlargest(10, 'commentScore')[['poiName', 'commentScore', 'districtName']]
top_heat = df_cleaned.nlargest(10, 'heatScore')[['poiName', 'heatScore', 'districtName']]

通过对比分析,我们发现:

🎯 关键发现:

  • 评论分数反映游客满意度
  • 热度分数体现景点受欢迎程度
  • 两者排名可能存在差异,揭示不同维度的受欢迎程度

可视化展示

我们使用并排条形图直观展示TOP10景点:

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(16, 8))

# 左侧:评论分数TOP10
bars1 = ax1.barh(range(len(top_comment)), top_comment['commentScore'], color='skyblue', alpha=0.7)
# 右侧:热度分数TOP10  
bars2 = ax2.barh(range(len(top_heat)), top_heat['heatScore'], color='lightcoral', alpha=0.7)

📈 图表特色:

  • 水平条形图便于阅读长景点名称
  • 不同颜色区分评分类型
  • 网格线增强可读性
  • 数值标签直观显示具体分数
    在这里插入图片描述

🎨 服务设施词云分析

数据处理流程

def process_service_data(service_text):
    if pd.isna(service_text) or service_text == '未提供':
        return []
    
    # 分割服务项目
    services = re.split(r'[,,、\s]+', str(service_text))
    services = [s.strip() for s in services if s.strip()]
    return services

词云生成

wordcloud = WordCloud(
    font_path='C:/Windows/Fonts/simhei.ttf',
    width=800,
    height=600,
    background_color='white',
    colormap='viridis',
    max_words=50
).generate_from_frequencies(service_counter)

🌟 分析价值:

  • 快速识别景区提供的核心服务
  • 发现服务设施分布规律
  • 为游客提供设施预期参考
    在这里插入图片描述

服务设施排行榜

通过条形图展示前15个最常见的服务设施:

plt.barh(services, counts, color='lightseagreen')
plt.xlabel('出现次数')
plt.title('前15个最常见的服务设施')

💡 实用发现:

  • 停车场、餐厅、WiFi成为标配服务
  • 特殊服务设施体现景区特色
  • 服务完善度与景区等级正相关
    在这里插入图片描述

🗺️ 地区分布分析

数据统计

district_counts = df['districtName'].value_counts()
total_attractions = len(df)
district_percentages = (district_counts / total_attractions * 100).round(2)

可视化方案

采用饼图+条形图的双重展示:

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(16, 8))

# 左侧饼图 - 展示分布比例
wedges, texts, autotexts = ax1.pie(...)

# 右侧条形图 - 精确数量对比
bars = ax2.bar(range(len(top_15)), top_15.values, color='lightsteelblue')

🏆 地区分布洞察:

  • 广州、深圳等核心城市景点集中
  • 粤东粤西地区旅游资源丰富
  • 区域分布反映经济发展与旅游资源的关系
    在这里插入图片描述

💎 核心发现总结

1. 评分双维度分析 🔥

评论分数与热度分数从不同角度反映景点质量,为游客提供全面参考。

2. 服务设施标准化 🛠️

基础服务设施趋于标准化,特色服务成为景区差异化竞争的关键。

3. 区域集中效应明显 🏙️

经济发达地区景点密度更高,旅游资源分布与经济发展水平密切相关。

4. 数据驱动旅游决策 📋

通过多维度数据分析,为游客提供科学的出行参考依据。

🚀 实用建议

对游客:

  • 参考双维度评分选择目的地
  • 根据服务设施需求筛选景区
  • 结合地区特色规划旅行路线

对景区管理者:

  • 完善基础服务设施
  • 提升游客体验以获得更高评分
  • 挖掘特色服务增强竞争力

通过这份数据分析,我们不仅看到了数字背后的旅游格局,更为智慧旅游提供了数据支撑。下次旅行前,不妨先看看数据怎么说!

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐