首页 > 其他分享 >机器学习每周挑战——旅游景点数据分析

机器学习每周挑战——旅游景点数据分析

时间:2024-04-04 17:30:25浏览次数:18  
标签:数据分析 sort 旅游景点 每周 True 销量 plt 名称 data

数据的截图,数据的说明:

# 字段    数据类型
# 城市    string
# 名称    string
# 星级    string
# 评分    float
# 价格    float
# 销量    int
# 省/市/区 string
# 坐标    string
# 简介    string
# 是否免费  bool
# 具体地址  string

拿到数据第一步我们先导入数据,查看一下数据的分布,类型等

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



data = pd.read_excel("旅游景点.xlsx")
pd.set_option("display.max_columns",100)
# print(data.head())

print(data.info())
print(data.isnull().sum())

接下来我们来看具体的问题:

# 问题(先大概分析一下)
# 1、全国景点分布 (我们分析城市的分布即可)
# 2、国民出游分析 (我们可以分析评分,城市,销量之间的关系 )
# 3、景区价格分析 (我们分析价格因素)
# 问题看完之后,我们开始对数据进行预处理
# 由于星级对我们问题的分析帮助很大,所以我们无法用删除,或者众数等方式填充,因此我们用无来填充,将其划分为一个新的类别
data["星级"] = data["星级"].fillna("无")
print(data["星级"].isnull().sum())
至于简介和地址,缺失数据无关紧要,这里我们可以选择用无来填充,也可以用删除来处理,为了不破坏数据的完整性,这里我选择用无来填充
data = data.fillna("无")
# print(data.isnull().sum())
# 这样我们的数据就没有了缺失值
# print(data.info())
# 1、全国景点分布 (我们分析城市的分布即可)
scenic = data['城市'].value_counts().sort_values(ascending=False)
plt.figure()
scenic.plot(kind='bar',stacked=False,colormap='viridis',figsize=(10,6))
plt.title("各个城市景点数量分布图")
plt.xlabel('城市')
plt.ylabel('景点个数')
# plt.show()
# 2、国民出游分析 (我们可以分析评分,城市,销量之间的关系 )
# data['销量'] = data['销量'].astype(int)   这种转换类型的方法,如果有无法转换的值,则无法转换
data['评分'] = pd.to_numeric(data['评分'], errors='coerce')
data['销量'] = pd.to_numeric(data['销量'],errors='coerce')
data['价格'] = pd.to_numeric(data['价格'],errors='coerce')

city_sales = data.groupby('城市')['销量'].sum()
city_sales = city_sales.sort_values(ascending=False)

plt.figure()
city_sales.plot(kind='bar',stacked=True,colormap='plasma',figsize=(10,6))
plt.title('各个城市景点门票销量')
plt.xlabel('城市')
plt.ylabel('销量')
# 从销量可以看出北京,上海,江苏,四川,陕西,广东的销量较高,因此,我们着重分析这六个地方的景点评分
shanghai = data[data['城市'].str.contains('上海')]
beijing = data[data['城市'].str.contains('北京')]
jiangsu = data[data['城市'].str.contains('江苏')]
sichuan = data[data['城市'].str.contains('四川')]
shanxi = data[data['城市'].str.contains('陕西')]
guangdong = data[data['城市'].str.contains('广东')]

shanghai_group = shanghai.groupby('名称')['销量'].sum().reset_index()
beijing_group = beijing.groupby('名称')['销量'].sum().reset_index()
jiangsu_group = jiangsu.groupby('名称')['销量'].sum().reset_index()
sichuan_group = sichuan.groupby('名称')['销量'].sum().reset_index()
shanxi_group = shanxi.groupby('名称')['销量'].sum().reset_index()
guangdong_group = guangdong.groupby('名称')['销量'].sum().reset_index()

shanghai_sort = shanghai_group.merge(shanghai[['名称','评分']].drop_duplicates(),on='名称').sort_values(by='销量', ascending=False).head(10)
beijing_sort = beijing_group.merge(beijing[['名称','评分']].drop_duplicates(),on='名称').sort_values(by='销量', ascending=False).head(10)
jiangsu_sort = jiangsu_group.merge(jiangsu[['名称','评分']].drop_duplicates(),on='名称').sort_values(by='销量', ascending=False).head(10)
sichuan_sort = sichuan_group.merge(sichuan[['名称','评分']].drop_duplicates(),on='名称').sort_values(by='销量', ascending=False).head(10)
shanxi_sort = shanxi_group.merge(shanxi[['名称','评分']].drop_duplicates(),on='名称').sort_values(by='销量', ascending=False).head(10)
guangdong_sort = guangdong_group.merge(guangdong[['名称','评分']].drop_duplicates(),on='名称').sort_values(by='销量', ascending=False).head(10)

shanghai_sort.reset_index(drop=True,inplace=True)
beijing_sort.reset_index(drop=True,inplace=True)
jiangsu_sort.reset_index(drop=True,inplace=True)
sichuan_sort.reset_index(drop=True,inplace=True)
shanxi_sort.reset_index(drop=True,inplace=True)
guangdong_sort.reset_index(drop=True,inplace=True)


plt.figure()
plt.bar(shanghai_sort['名称'],shanghai_sort['销量'])
for i, v in enumerate(shanghai_sort['评分']):
    plt.text(i, shanghai_sort['销量'][i] + 0.2, str(v), ha='center')

plt.xlabel('名称')
plt.ylabel('销量')
plt.title('上海市销量排名前十的景点')
plt.xticks(rotation=45)


plt.figure()
plt.bar(beijing_sort['名称'], beijing_sort['销量'])
for i, v in enumerate(beijing_sort['评分']):
    plt.text(i, beijing_sort['销量'][i] + 0.2, str(v), ha='center')

plt.xlabel('名称')
plt.ylabel('销量')
plt.title('北京市销量排名前十的景点')
plt.xticks(rotation=45)


plt.figure()
plt.bar(jiangsu_sort['名称'], jiangsu_sort['销量'])
for i, v in enumerate(jiangsu_sort['评分']):
    plt.text(i, jiangsu_sort['销量'][i] + 0.2, str(v), ha='center')

plt.xlabel('名称')
plt.ylabel('销量')
plt.title('江苏省销量排名前十的景点')
plt.xticks(rotation='vertical')


plt.figure()
plt.bar(sichuan_sort['名称'], sichuan_sort['销量'])
for i, v in enumerate(sichuan_sort['评分']):
    plt.text(i, sichuan_sort['销量'][i] + 0.2, str(v), ha='center')

plt.xlabel('名称')
plt.ylabel('销量')
plt.title('四川省销量排名前十的景点')
plt.xticks(rotation=45)


plt.figure()
plt.bar(shanxi_sort['名称'], shanxi_sort['销量'])
for i, v in enumerate(shanxi_sort['评分']):
    plt.text(i, shanxi_sort['销量'][i] + 0.2, str(v), ha='center')

plt.xlabel('名称')
plt.ylabel('销量')
plt.title('陕西省销量排名前十的景点')
plt.xticks(rotation=45)


plt.figure(figsize=(10,6))
plt.bar(guangdong_sort['名称'], guangdong_sort['销量'])
for i, v in enumerate(guangdong_sort['评分']):
    plt.text(i, guangdong_sort['销量'][i] + 0.2, str(v), ha='center')

plt.xlabel('名称')
plt.ylabel('销量')
plt.title('广东省销量排名前十的景点')
plt.xticks(rotation=45)

由此,我们结合这几个分析来回答这几个问题:

标签:数据分析,sort,旅游景点,每周,True,销量,plt,名称,data
From: https://blog.csdn.net/qq_60688380/article/details/137182723

相关文章

  • 机器学习每周挑战——信用卡申请用户数据分析
    数据集的截图#字段说明#Ind_ID客户ID#Gender性别信息#Car_owner是否有车#Propert_owner是否有房产#Children子女数量#Annual_income年收入#Type_Income收入类型#Education教育程度#Marital_status婚姻状况#Housing_type居住......
  • Python快速入门系列-8(Python数据分析与可视化)
    第八章:Python数据分析与可视化8.1数据处理与清洗8.1.1数据加载与查看8.1.2数据清洗与处理8.1.3数据转换与整理8.2数据可视化工具介绍8.2.1Matplotlib8.2.2Seaborn8.2.3Plotly8.3数据挖掘与机器学习简介8.3.1Scikit-learn8.3.2TensorFl......
  • 数据分析的利器,Pandas 软件包详解与应用示例
    左手编程,右手年华。大家好,我是一点,关注我,带你走入编程的世界。公众号:一点sir在中土大地上,有一位名为"数据剑客"的江湖人士,他手持一柄闪烁着银光的利剑,剑法犀利,能够破解数据的种种奥秘。传言他曾在一场数据风暴中横扫八方,击溃了无数数据乱象,以无情的数据剑法征服了各路数据恶徒......
  • “金三银四”变“铜三铁四”,会Python数据分析的人却笑了
    金三银四,本该是一年一度的招聘旺季。但今年的职场风向好像有些变化,大型互联网公司纷纷裁员,大批应届毕业生开始“春招”,如今3月份已经接近尾声,而招聘市场却反常的冷淡,尤其是互联网行业,新增职位量大幅下降。大家一边笑称今年的金三银四“氧化”成了“铜三铁四”,一边“投简历......
  • 智能交通系统设计:基于MATLAB的智能交通系统设计和仿真,包括交通流仿真、交通信号控制和
    鱼弦:公众号【红尘灯塔】,CSDN内容合伙人、CSDN新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)基于MATLAB的智能交通系统设计:原理、应用、实现与分析1.智能交通系统概述1.1......
  • 旅游景点 Tourist Attractions
    [POI2007]ATR-TouristAttractions题目背景FGD想从成都去上海旅游。在旅途中他希望经过一些城市并在那里欣赏风景,品尝风味小吃或者做其他的有趣的事情。经过这些城市的顺序不是完全随意的,比如说FGD不希望在刚吃过一顿大餐之后立刻去下一个城市登山,而是希望去另外什么地方喝下......
  • 如何利用爬虫与数据分析指导选择首篇小说类型:第三章通过免费代理网站建立ip池
    如何利用爬虫与数据分析指导选择首篇小说类型:第三章通过免费代理网站建立ip池第三章通过免费代理网站建立ip池文章目录如何利用爬虫与数据分析指导选择首篇小说类型:第三章通过免费代理网站建立ip池前言一、获取免费ip1.封装requests请求网址方法2.获取代理ip—开心代......
  • 数据分析-Matplotlib模块
    简介Pyplot是Matplotlib的子库,提供了和MATLAB类似的绘图API。Pyplot是常用的绘图模块,能很方便让用户绘制2D图表。Pyplot包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改,例如:给图像加上标记,生新的图像,在图像中产生新的绘图区域等等。pyplot子模块的......
  • agate 一个方便的python 数据分析包
    对于基于python数据处理的同学,使用pandas的可能比较多,但是agate也是一个很不错的选择,比如dbt对于seed模型的处理就基于了agateagate包含的特性易读以及用户用好的api完整的类似sql的操作unicode支持比较完整的文档插件化的扩展支持(比如sql,excel)与ipython,jupyter以......
  • R语言分段回归数据分析案例报告
    原文链接: http://tecdat.cn/?p=3805原文出处:拓端数据部落公众号 我们在这里讨论所谓的“分段线性回归模型”,因为它们利用包含虚拟变量的交互项。读取数据  data=read.csv("artificial-cover.csv")查看部分数据  head(data)##   tree.covershurb.gr......