因为对好友搬家的原因,对珠海房租产生一定的兴趣,想要研究分析一下珠海的房租情况。
首先需要写一个收集数据的函数,从租房网站上爬去房源房租信息。将爬取下来的数据进行清洗,整合,然后再进行分析。
本次分析使用Python,用到的库有pandas库,numpy库,re库,BeautifulSoup库,requests库。
1、收集房源链接
设计函数makepage(n1,n2)。makepage(n1,n2)函数的功能是输入n1,n2,收集从第n1页到第n2页的房源链接,返回有房源连接的列表。
2、收集房源的具体信息
设计getHouse(url)函数,主要是将从makepage(n1,n2)函数收集到的房源链接上,获取房源的详细信息,例如房租,房子所在区域,房子面积等信息。
然后通过for循环,将makepage(n1,n2)函数收集到的房源链接一个个提取出来,使用getHouse(url)函数获取房子信息,然后将获取的信息放到一个空列表(houselist)里,然后用pandas库的pandas.DataFrame(houselist),将数据表格化呈现。
3、清洗数据
数据被我们采集下来是非常混乱的,有些字段的的数据有着很多的空缺值,根据我们采集下来的数据字段,有65个字段,其中有很多楼层字段,例如:楼层(共10层)、楼层(共12层)。同时由于标题是不可能出现缺失值的,如果标题出现了缺失值,那就证明表格这一行数据都出现了缺失了。
使用df['标题'].notnull(),排除整行的缺失值。
4、将楼层数据汇集成一列,删掉关于楼层的多余列,从数据的缺失度,以及重要性来看,小区介绍,户型介绍,服务介绍,房源亮点,周边配套所在小区可以清洗掉,然后将床、空调、宽带、暖气、冰箱、电视、洗衣机、热水器合并成一列,再清洗相关字段
5、尽管将数据清洗了,但是数据里仍然包含了部分不需要的字段,而且数据排列很杂乱和不美观,而且想把建筑面积数值、所在区域和抵押方式提取出来。这里使用到strip(),split()以及正则表达式,来提取数据。
6、数据清洗完后,我们就来进行数据分析。
首先进行描述性分析
根据描述分析,中位数和均值,出现较大差距,证明租金和建筑面积都有极值出现,而且标准差和均值的差距较大,说明数据比较离散,存在极值。通过散点图、租金和建筑面积直方图得出,租金出现一个极值25000元,建筑面积出现2个极值300平米。
7、现在来看一下各个区域的房源数量和平均数据分别是多少,从图中可以看出平均房租租金收费高的前五地区是南屏、吉大、新香洲、唐家湾和兰埔,同时房源数量 前五的区域分别是南屏、新香洲、吉大、唐家湾和前山
8、建立箱形图,图像化每个区域的房租分布。根据图中显示,分布比较均衡的区域是红旗、老香洲,三灶、唐家湾、南屏、夏湾、新香洲、湾仔、白藤头以及吉大房租租金都有极值出现,吉大甚至出现了整个数据极值25000块.
9、根据文章标题,建立词云图。词云图根据词语在标题中出现的频率,对词语进行统计描绘,字体大小决定该词汇在整个文本的权重。从图中可知,权重前3的词语分别是“精装”、“家电 齐全”和“家私 家电”。
由于采集的数据量较少,只有500多条,不能代表珠海整体的租房情况,仅供参考。