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

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

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

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

import pandas as pd
import numpy as np
import matplotlib.pyplot as pltdata = 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)

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/293291.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

神奇的css radial-gradient

使用css radial-gradient属性,创造一个中间凹陷进去的形状。如下图 background: radial-gradient(circle at 50% -0.06rem, transparent 0.1rem, white 0) top left 100% no-repeat;

如何在极狐GitLab 自定义 Pages 域名、SSL/TLS 证书

本文作者:徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了在极狐GitLab 用户…

【41-60】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了

【41-60】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了 以下是本文参考的资料 欢迎大家查收原版 本版本仅作个人笔记使用41、使用 Session 的过程是怎样的?42、Session和cookie应该如何去选择(适…

算法学习——LeetCode力扣动态规划篇2(343. 整数拆分、96. 不同的二叉搜索树、416. 分割等和子集、1049. 最后一块石头的重量 II)

算法学习——LeetCode力扣动态规划篇2 343. 整数拆分 343. 整数拆分 - 力扣(LeetCode) 描述 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得…

网络套接字补充——UDP网络编程

五、UDP网络编程 ​ 1.对于服务器使用智能指针维护生命周期;2.创建UDP套接字;3.绑定端口号,包括设置服务器端口号和IP地址,端口号一般是2字节使用uint16_t,而IP地址用户习惯使用点分十进制格式所以传入的是string类型…

Stream流的详细说明

什么是stream流 Stream流是指一种数据处理的概念,它可以将数据以连续的方式传输,而不用等待整个数据集全部加载完成。在计算机编程中,Stream流通常用于处理大数据集或实时数据流。 Stream流可以分为输入流和输出流,输入流用于从数…

应用开发平台集成表单设计器系列之6——表单构造器集成实战

背景 平台需要实现自定义表单功能,作为低代码开发的一部分,通过技术预研和技术选型,选择form-create和form-create-designer这两个组件进行集成作为实现方案。通过深入了解和技术验证,确认了组件的功能能满足需求,具备…

Android 手机恢复出厂设置后可以恢复数据吗?

将 Android 手机恢复出厂设置是否会永久删除所有内容,或者您​​仍然可以检索部分数据吗? 如果您无法再使用 Android 手机,唯一的解决方案可能是将其恢复出厂设置。恢复出厂设置(也称为硬重置)会删除设备中的所有设置…

Qt案例 调用WINDOWS API中的SETUPAPI.H库获取设备管理器中设备的详细信息中的属性值(二)

使用Qt调用windows api中的setupapi.h库中的SetupDiGetDeviceRegistryProperty和SetupDiGetDeviceProperty函数获取设备管理器中的设备详细信息中的属性值,包括设备实例路径,硬件id,驱动inf名称,驱动版本,显示名称,类名…

数据结构——二叉树——堆

前言: 在前面我们已经学习了数据结构的基础操作:顺序表和链表及其相关内容,今天我们来学一点有些难度的知识——数据结构中的二叉树,今天我们先来学习二叉树中堆的知识,这部分内容还是非常有意思的,下面我们…

虚拟机Linux(centos)安装python3.8(超详细)

一、Python下载 下载地址:https://www.python.org/downloads/source/ 输入下面网址即可直接下载: python3.8:https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz python3.6:https://www.python.org/ftp/python/3.6.5/…

微信小程序(黑马优购:登录)

1.点击结算进行条件判断 user.js //数据 state: () >({ // address: {} address: JSON.parse(uni.getStorageSync(address) || {}), token: }), my-settle.vue computed: { ...mapGetters(m_cart,[checkedCount,total,checkedGoodsAmount]), …

IP种子是什么?理解和应用

在网络世界中,IP种子是一个广泛应用于文件共享和网络下载领域的概念。它是一种特殊的标识符,用于识别和连接到基于对等网络(P2P)协议的文件共享网络中的用户或节点。本文将深入探讨IP种子的含义、作用以及其在网络中的应用。 IP地…

【Linux】TCP网络套接字编程+守护进程

文章目录 日志类(完成TCP/UDP套接字常见连接过程中的日志打印)单进程版本的服务器客户端通信多进程版本和多线程版本守护进程化的多线程服务器 日志类(完成TCP/UDP套接字常见连接过程中的日志打印) 为了让我们的代码更规范化&…

瑞_23种设计模式_观察者模式

文章目录 1 观察者模式(Observer Pattern)1.1 介绍1.2 概述1.3 观察者模式的结构1.4 观察者模式的优缺点1.5 观察者模式的使用场景 2 案例一2.1 需求2.2 代码实现 3 案例二3.1 需求3.2 代码实现 4 JDK中提供的观察者模式实现 ★4.1 Observable类4.2 Obse…

Day63-LVS四层负载均衡及结合Nginx7层负载均衡实践

Day63-LVS四层负载均衡及结合Nginx7层负载均衡实践 1. LVS(Linux Virtual Server)介绍2. IPVS(LVS)发展史3. IPVS软件工作层次图4. LVS技术点小结5. LVS的4模式原理讲解5.1 NAT(Network AddressTranslation),中文网络地…

《Retrieval-Augmented Generation for Large Language Models: A Survey》 AI 解读

论文链接:Retrieval-Augmented Generation for Large Language Models: A Survey 论文标题:《Retrieval-Augmented Generation for Large Language Models: A Survey》 一译中文版地址: https://yiyibooks.cn/arxiv/2312.10997v5/index.htm…

PI案例分享--2000A核心电源网络的设计、仿真与验证

目录 摘要 0 引言 1 为什么需要 2000A 的数字电子产品? 2 2000A 的供电电源设计 2.1 "MPM3698 2*MPM3699"的 MPS扩展电源架构 2.2 使用恒定导通时间(COT)模式输出核心电压的原因 2.3 模块化 VRM 的优势 2.4 用步进负载验证2000A的设计难点 2.4.1 电源网络 …

qtcreator的信号槽链接

在ui文件中简单创建一个信号槽连接并保存可以在ui_mainwindow.h下 class Ui_MainWindow 类 void setupUi(QMainWindow *MainWindow)函数 找到对应代码 QObject::connect(pushButton, SIGNAL(clicked()), MainWindow, SLOT(close())); 下拉,由于 class MainWind…

《权力》为什么只为某些人所拥有 - 三余书屋 3ysw.net

权力:为什么只为某些人所拥有 大家好,今天我们解读的书名是《权力》,副标题是“为什么只为某些人所拥有”。该书深入探讨了职场中的权力议题,强调获得权力是关键的职场技能之一。在激烈的职场竞争中,缺乏这一技能将使…