2.Python数据分析项目——旅游景点票价预测

这篇具有很好参考价值的文章主要介绍了2.Python数据分析项目——旅游景点票价预测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.总结

流程 具体操作
基本查看 查看缺失值、查看数值类型
预处理 缺失值处理(填充)拆分数据(获取有需要的值) 、统一数据格式
数据分析 groupby分组求最值数据、seaborn可视化
预测(RandomForestRegressor) 拆分数据集、建立模型、训练模型、预测、评估模型

数量查看:条形图
占比查看:饼图
数据分区分布查看:概率密度函数图
查看相关关系:条形图
分布分析:分类直方图(countplot)、分布图(distplot)

2.数据的基本查看

df = pd.read_csv('data.csv')
'''
    1.得出对于level我们需要获取它的单独等级,并且处理缺失值(填充0);
    2.获取地区数据,使用拆分成多列的方式
    3.获取热度值数据,整理成统一的数据格式
'''
df.head()

# 对数值列进行描述性统计
df.describe()

2.Python数据分析项目——旅游景点票价预测

3.数据的预处理

第二步中,已经确定好了需要处理的方向

# 处理等级数据
# 1.填充缺失值:将等级为NaN的数据填充为0
df['level'] = df['level'].fillna(0)
# 2.只保留等级数值
df['level'] = df['level'].apply(lambda x:0 if x==0 else int(x[0]))

# 处理热度列:只保留热度的数字
# 1.先将热度数字字符串提取出来,转换为浮点型数据,浮点型数据保留两位小数,最后结果再一次转换为浮点型数据
df['hot'] = df['hot'].apply(lambda x:float("%.2f"%float(x.split(" ")[-1])))

# 处理区域数据
# 1.对区域中的省、市、区 分别提取出来,并存储到新的列中
df['province'] = df['area'].apply(lambda x:x.split('·')[0]) # 新增省份列
df['city'] = df['area'].apply(lambda x:x.split('·')[1]) # 新增城市列
df['mini_city'] = df['area'].apply(lambda x:x.split('·')[-1]) # 新增区列
# 2.删除原来的area列
del df['area']
df

2.Python数据分析项目——旅游景点票价预测

4.数据分析

4.1 统计销量最多的前10个景点

# 1.分组统计销量
num_top = df.sort_values(by='num', ascending=False)
# 2.重置索引
num_top = num_top.reset_index(drop=True)# 重置索引,将原来的索引删了
# 3.绘制图形
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 设置字体
import seaborn as sns
sns.set(font='SimHei') # 设置绘图字体中文编码
fig = plt.figure()
sns.barplot(num_top['name'][:10], num_top['num'][:10])# 绘制条形图
fig.show()

2.Python数据分析项目——旅游景点票价预测

4.2 景区评级和省份之间的关系

# 1.新增加应该level_sum列,设置初始值为1。最后用其计数
df['level_sum'] = 1
# 2.分组(景区和省份)再对应两者求和
var = df.groupby(['province','level'])['level_sum'].sum()
# 3.将Series转化为DataFrame。(两索引重置分别转换为DataFrame的行和列)
var.unstack()
# 4.绘制条形图
var.unstack().plot(kind='bar')

2.Python数据分析项目——旅游景点票价预测

4.3 统计人数最多的前10个5A级景区

# 先选取5A级别的景区,然后根据数量降序排序,最后重置索引并删除原来的索引,选取前10个
top_5A = df[df['level'] == 5].sort_values(by='num',ascending=False).reset_index(drop=True)[:10]
# 绘制经典名称与销量(人数)条形图
sns.barplot(top_5A['name'], top_5A['num'])
plt.title('人数最多的5A级景区')
plt.xticks(rotation=90) # x轴名称旋转90度
plt.show()

2.Python数据分析项目——旅游景点票价预测

4.4 数据分布分析——等级、热度、价格、销量

# 1.景区等级分布
plt.figure(figsize=(20,1))
sns.countplot(y='level', data=df)

2.Python数据分析项目——旅游景点票价预测

# 2.景区热度分布
# 解决图形负号乱码问题
plt.rcParams['axes.unicode_minus'] = False
# 热度分布图绘制
sns.displot(df['hot'])
plt.xticks(rotation=25)

2.Python数据分析项目——旅游景点票价预测

#3.价格分布分析
df.describe() # 查看发现不符合实际,国内票价很少超过300元,删除,不参与分析
df = df.drop(df[df['price']>300].index)
df.describe()
sns.displot(df['price'])
plt.xticks(rotation=25)

2.Python数据分析项目——旅游景点票价预测

# 4.销量分布
# 数据过于集中,导致查看分布无意义,所以切分查看
df['num_cut'] = pd.cut(df['num'],10)
plt.figure()
sns.countplot(y='num_cut', data=df)

2.Python数据分析项目——旅游景点票价预测

5.建模前数据预处理

# 1.删除建模不需要的列
df.drop(['level_sum', 'num_cut'],axis=1,inplace=True)
df.head()

# 2.对指定列进行one-hot编码(推荐编码分类的列)
one_hot_df = pd.get_dummies(df[['province', 'city', 'mini_city']])
# 3.与原本的数据表合并
df = df[['level','hot','price','num']]
df = pd.merge(df, one_hot_df, left_index=True, right_index=True)
df.head()

2.Python数据分析项目——旅游景点票价预测

6.建模——对票价进行预测

使用RandomForestRegressor(随机森林)建立回归模型,对票价进行预测文章来源地址https://www.toymoban.com/news/detail-496753.html

# 1.导包
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error, mean_absolute_error

# 2.获取数据集
X = df[df.columns.difference(['price'])].values # 获取样本特征集
y = df['price'].values # 获取样本标签值

# 3.分割数据集
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3,random_state=456)

# 4.建立模型
rf = RandomForestRegressor(n_estimators=20, max_depth=7)

# 5.拟合训练模型
rf.fit(X_train, y_train)

# 6.预测值
pred = rf.predict(X_test)

# 7.模型评估
print("MSE: ", mean_squared_error(y_test, pred))
print("MAE: ", mean_absolute_error(y_test, pred))

到了这里,关于2.Python数据分析项目——旅游景点票价预测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hadoop+Python+Django+Mysql热门旅游景点数据分析系统的设计与实现(包含设计报告)

    系统阐述的是使用热门旅游景点数据分析系统的设计与实现,对于Python、B/S结构、MySql进行了较为深入的学习与应用。主要针对系统的设计,描述,实现和分析与测试方面来表明开发的过程。开发中使用了 django框架和MySql数据库技术搭建系统的整体架构。利用这些技术结合实

    2024年02月13日
    浏览(59)
  • 数据分析:旅游景点销售门票和消费情况分析

    作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪 旅游景区作

    2023年04月08日
    浏览(57)
  • 计算机毕业设计:基于python热门旅游景点数据爬取分析系统+可视化 +大数据(附源码+文档)✅

    博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌感兴趣的可以先收藏起来,点赞、关注不迷路✌ 毕业设计:2023-2024年计算机毕业设计1000套(建议收藏)

    2024年01月17日
    浏览(55)
  • 基于hive的安顺旅游景点数据分析的设计与实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流 ✌ 主要内容: SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、P

    2024年03月12日
    浏览(51)
  • 基于spark的热门旅游景点门票数据可视化分析系统

    热门旅游景点数据分析系统综合网络空间开发设计要求。目的是将传统管理方式转换为在网上管理,完成热门旅游景点数据分析管理的方便快捷、安全性高、交易规范做了保障,目标明确。热门旅游景点数据分析系统功能主要包括个人中心、门票信息管理、名宿信息管理、系

    2024年04月14日
    浏览(59)
  • 爬虫技术对携程网旅游景点和酒店信息的数据挖掘和分析应用

    导语 爬虫技术是一种通过网络爬取目标网站的数据并进行分析的技术,它可以用于各种领域,如电子商务、社交媒体、新闻、教育等。本文将介绍如何使用爬虫技术对携程网旅游景点和酒店信息进行数据挖掘和分析,以及如何利用Selenium库和代理IP技术实现爬虫程序。 概述

    2024年02月07日
    浏览(55)
  • 大数据毕业设计选题推荐-旅游景点游客数据分析-Hadoop-Spark-Hive

    ✨ 作者主页 :IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐 ⬇⬇⬇ Java项目 Python项目 安卓项目 微信小程序

    2024年02月05日
    浏览(55)
  • 大数据毕业设计选题推荐-热门旅游景点数据分析-Hadoop-Spark-Hive

    ✨ 作者主页 :IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐 ⬇⬇⬇ Java项目 Python项目 安卓项目 微信小程序项目

    2024年02月05日
    浏览(61)
  • 【旅游景点项目日记 | 第二篇】基于Python中的Selenium爬取携程旅游网景点详细数据

    Gitee仓库地址:travel-server:景点旅游项目服务端 确保安装python3.x环境 以管理员身份打开cmd, 安装selenium、pymysql、datetime ,默认安装最新版即可 确保chrome安装对应版本的驱动 (将该驱动放在chrome安装路径下),用于控制chrome浏览器,并将路径添加到环境变量的Path变量中,如

    2024年04月13日
    浏览(54)
  • 【爬虫实战项目】Python爬虫批量旅游景点信息数据并保存本地(附源码)

    今天给大家介绍的是Python爬虫批量下载旅游景点信息数据,在这里给需要的小伙伴们代码,并且给出一点小心得。 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这样的纯文本数据爬取的人会很多,所以我们需要考虑更换代理IP和随

    2023年04月20日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包