pandas杭州市出租房分析

前言:很早之前学了爬虫,但是一直没有对爬虫数据进行分析过,最近爬了2019年2月份的58同城杭州租房信息,希望分析一下杭州房租情况,租金分布是怎么样的,哪里的性价比最好。

数据来源

数据是集采于58同城的租房信息(代码见https://github.com/guigui1992/58_spider)
数据如图1所示,包含字段:title, room_type, area, address, department, rent_origin_type, rent_origin, price
在这里插入图片描述
图2是58租房页面信息分别对应表里的字段
在这里插入图片描述
由于爬数据的时候没有对数据进行过清洗和特别的处理,所以可以看到表里的字段里面的值里面有很多空格,另外如户型和面积的信息被提取在同一个字段里面了。接下里需要对数据进行一下清洗。

数据预处理

数据清洗
对title,room_type,address,rent_origin等字段进行解析,冗余信息处理(eg:空格 m2),从而得到租赁类型(eg:单间和整租),面积,商圈,公寓,经纪公司。

#数据清洗
info['type']=info['title'].str.split('|',expand=True)[0].str.replace('[\n\s+]','')
info['m_area']=info['room_type'].str.replace('\s+|㎡','#').str.split('#',expand=True)[1].astype(float)
info['m_room_type']=info['room_type'].str.replace('\s+','#').str.split('#',expand=True)[0]
info['m_room_type']=info.m_room_type.str.replace('两','2')
info['send_time']=info['send_time'].str.replace('[\n\s+]','')
info['m_rent_origin']=info['rent_origin'].str.replace('[\n\s+]','')
info['m_department']=info['address'].str.split(';',expand=True)[1]
info['m_address']=info['address'].str.split(';',expand=True)[0]
info['price_int']=info[info['price']!='面议']['price'].astype(float)
info['fee_avg_square']=info.apply(lambda info: info['price_int'] / info['m_area'], axis=1)

地址解析
由于没有爬虫的数据里面没有区域信息如西湖区,江干区,区域又是重要的分析维度,因此调用了google的接口根据公寓名获得具体的经纬度,再根据经纬度获取区域信息

# 地址解析 根据地址名称返回经纬度
import requests 
def geocode(address): 
    parameters = {
   'address': address, 'key': 'XXXXXXX'} ## key 高德api注册,申请一个应用可以获得
    base = 'http://restapi.amap.com/v3/geocode/geo'
    headers = {
   
              'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
              'Cookie': 'id58=c5/njVpymhR0X0thDRuHAg==; commontopbar_new_city_info=79%7C%E6%9D%AD%E5%B7%9E%7Chz; 58tj_uuid=763a5398-da95-4db2-9a54-ba7f4171f17c; new_uv=1; wmda_uuid=80797b44db9604b45dfbf4807417e58f; wmda_new_uuid=1; wmda_visited_projects=%3B2385390625025; commontopbar_ipcity=hz%7C%E6%9D%AD%E5%B7%9E%7C0; commontopbar_myfeet_tooltip=end; als=0; xxzl_deviceid=d7wGUAUqik8MomhIMsEH98iyUnHRBDyrCJYsasv1uq9biXZ%2F%2Bxav%2BhZr%2FQQmLjYF; wmda_session_id_2385390625025=1517477544470-6db397e1-9d59-3e58'
              #'Host': 'cdata.58.com',
              #'Referer': 'http://webim.58.com/index?p=rb'
    }
    response = requests.get(base, parameters,headers=headers)
    answer = response.json()
    print(address)
    print(answer)
    return answer['geocodes'][0]['location']
    #print(address + "的经纬度:", answer['geocodes'][0]['location'])
info['department1']='杭州市'+info['m_department']
info['lngandlat']=info[info['department1'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值