之前爬取了2019国庆热门景点python爬取2019国庆热门景点1——数据爬取与保存,现在来简要分析一下景点的相关信息。文章思路来源自公众号【裸睡的猪】(这个作者真的好腻害,向他学习,他的csdn账号名也叫裸睡的猪),不过文章的源代码是图片,为了加深影响,我全部自己进行重写,期间发现该文作者代码中不适合我数据的情况,进行一些修改。
1.数据清洗
因为得到的excel表格数据比较乱,主要有几个问题:
- price和month_sales为文本型,需要强制转换成数字
- 在爬取的时候,没有值的我统一用“暂无”替换了,但是在程序处理时,必须将这些值用数字替换,一般用0;景点等级没有的,我统一为1A了(虽然不合理)
- 爬取的数据中地区为三级,现在需要将地区中的省份提取出来
直接上代码:
#数据清洗
def new_excel():
"""
数据清洗
:return:
"""
#1.价格转为整型,同时暂无变成0
place_path = "qunar.xlsx"
df = pd.read_excel(place_path)
raw_sales=df["month_sales"].values
new_sales=[]
for sales in raw_sales:
if "暂无"==sales:
sales=int(sales.replace("暂无",'0'))
new_sales.append(int(sales))
df["month_sales"]=new_sales
#2.地区中只提取省份
district=df["district"].values
new_district=[]
for dist in district:
dist=dist[0:2]
new_district.append(dist)
df["district"]=new_district
#3.价格数据处理
price=df["price"].values
new_price=[]
for pre in price:
if "暂无"==pre:
pre = int(pre.replace("暂无", '0'))
#对于浮点数,不能只能int,必须先转换成float
new_price.append(int(float(pre)))
df["price"]=new_price
#4.景点热度数据处理
hotsum=df["hotsum"].values
new_hotsum=[