赞
踩
前言
文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
作者: 刘亦菲的老公
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
数据获取
爬取了携程网上关于全国大概16000条景点数据和美团网上五个城市的大概5000条酒店数据,然后导出为.csv表格形式方便用
pandas.read_csv()
来读取其中的数据。
数据预处理和清洗
景点数据
原始数据中,景点数据长这样
由于数据按省份分为三十多个.csv文件,并且其中还有不需要的列,用以下代码来读取(其他省份同样,只列出上海的)
import pandas as pd
上海 = pd.read_csv('上海.csv', engine='python',
usecols=['省份', 'spot-info', 'spot-info1', 'spot-info2', '价格', '已售', 'desc', 'spot-comment',
'spot-label1'])
再将全部数据组合在一起
China_scenic = pd.concat([上海, 云南, 内蒙古, 北京, 台湾, 吉林, 四川, 天津,
宁夏, 安徽, 山东, 山西, 广东, 广西, 新疆, 江苏,
河北, 河南, 浙江, 海南, 湖北, 湖南, 澳门, 甘肃,
福建, 西藏, 贵州, 辽宁, 重庆, 陕西, 青海, 香港, 黑龙江], sort=True,
ignore_index=True).reset_index().drop(columns='index')
接下来删除那些重复和没有评分的地点。
# 删除重复地点
China_scenic = China_scenic.drop_duplicates(subset='spot-info')
# 删除没有评分的地点
China_scenic = China_scenic[China_scenic['spot-comment'].notnull()]
再将评分转换为好评率,将没有景区等级的景点标为无等级
def grade_change(i):
i = i.replace('分', '')
return float(i) / 5
# 将评分转换为好评率
China_scenic['spot-comment'] = China_scenic['spot-comment'].apply(grade_change)
# 将没有景区等级的景区标为无等级
China_scenic['spot-info2'] = China_scenic['spot-info2'].fillna('无等级')
由于有许多景点是不需要购票进入的,这里再将所有景点分成两部分以便之后的操作
# 选取免费景点
China_scenic_free = China_scenic[China_scenic['价格'].isna()].reset_index().drop(columns='index')
# 选取收费景点
China_scenic_charge = China_scenic[China_scenic['价格'].notnull()].reset_index().drop(columns='index')
接下来把消费景点的销售量转换为具体数值,把免费景点的销售量和价格这两列删除
def sold_change(i):
if '万&
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。