利用python + pyecharts+Pandas对北上广深等城市进行租房数

本次分析的租房数据主要来源于上一篇博客中获取的“房天下”网站租房信息,对该数据分析主要使用了数据处理库 。
利用 进行租房情况数据分析数据分析与可视化
数据处理 数据读取
将数据保存到数据库后,在这里使用数据库可视化工具,将数据以表格的形式出现,可以看到北京租房数据如图1所示 。
首先需要将的数据读取到库的数据中,类似于表格数据,而且有很多对数据处理有用的函数 。此外并不是每条数据的所有信息都对本次分析有价值,可以筛选每条记录的city、price、rooms、area、和字段,保存到一个列表中,最终将该列表转化为,具体代码如下:
def coll_to_dataframe(coll):table = db[coll]data=list(table.find())data_list=[]for d in data:temp={}temp['city']=d['city']temp['price']=d['price']temp['rooms']=d['rooms']temp['area']=d['area']temp['region']=d['region']data_list.append(temp)df = pd.DataFrame(data_list)
数据预处理
将数据放入构造器后,各字段的内容并没有改变 。如图5-1所示 。求每月的平均租金需要对数字进行操作,因此,将price和area字段转变为数字,操作df如下:
df['price']=df['price'].str.replace('元/月','').astype(float)df['area']=df['area'].str.replace('㎡','').astype(float)
这样通过将df[‘price’],df[‘area’]转变为字符串,然后将’元/月’和’㎡’通过空字符代替,就可以将price和area字段转变为float类型 。
处理异常值
处理数据前,需要检查缺失值和空值,通过()函数可以查看df的相关信息 。如图2所示,可以看到一共48894条记录,每个字段都没有缺失,所以不需要进行缺失值处理 。
图2 表格相关信息图
处理数据过程中会看到如图3所示的异常值,这几条信息存放在city为‘’的集合中,但是地区却是东莞市,这应该是商家信息发布有误,通过查看地址,发现这些房子属于东莞市 。由于数据量较小,可将这些房子city字段修改为东莞,并移到数据库‘’的集合中 。(在写代码时并未想到数据库可以用中文命名集合)
图3 数据异常值图
此外,还有如图4所示的异常数据 。
【利用python + pyecharts+Pandas对北上广深等城市进行租房数】图4中数据并未表明该房所在市区,这对后面分析求各个区的均值较为不利,但该房屋属于深圳,不能简单将其删除,会影响该市总体均值 。因此,需要在求该市各区均值市进行筛选,将通过下面语句删除:
df_temp=df_temp[~(df_temp['region'].isin(['龙军花园','汇隆中心','明景园']))]
处理重复值
爬虫的过程中偶尔出现对某个网页的重复爬取或者商家在不同的时间段发布了重复的租房信息,这些重复信息将影响平均值的计算,构造器中的()函数可以判断是否存在重复值 。可通过以下语句进行重复值的删除:
df.duplicated()df=df.drop_duplicates()
在获取租房信息时,一些房东为吸引租客,发布虚假或错误信息 。因此,存在不完整信息和离群值 。散点图可以很好的观察出异常值 。如图5所示,将面积与价格的关系以散点图的方式展现,观察离群值 。从图中可以看出,有一点价格高达200万元,还有房屋面积大于2000平方米,价格却贴近x轴,接近于零的几个点,很明显不符合实际情况 。将这些点筛选出来查看其它信息,发现信息确实存在异常,所以将这些样本值剔除 。
该散点图主要使用了进行作图 。