江苏省各地级市58同城租房数据

临近毕业,租房是少不了的,为了直观的了解江苏省的租房价格信息,这次就从58同城抓取了江苏省13个市的租房信息,进行简单地分析。

本次获得信息一共是3万条左右,抓取到的原始信息会附在文末,用到的主要的分析工具是pandas。

首先来看一下我们的原始信息的样子。

首先将‘name’字段进行分割,提取出租房的类型

def split_name_to_style(x):
    if '|' in x:
        x_list = x.split('|')
        return x_list[0]
    else:
        return '未知'
    
def split_name_to_name(x):
    if '|' in x:
        x_list = x.split('|')
        return x_list[1]
    else:
        return x   
    
df['style'] = df.name.apply(split_name_to_style)
df['name'] = df.name.apply(split_name_to_name)

然后就是分割‘size’字段,将其分割为两个独立的列,方便我们进行分析,基本和上面的相同,但是需要注意的是,‘size’字段中有不少的不可打印的字符,需要使用strip()函数将其去除。

def split_size_to_room(x):
    x_list = x.split(' ')
    return x_list[0]

def split_size_to_area(x):
    x_list = x.split(' ',1)
    return x_list[1].strip()

df['area'] = df['size'].apply(split_size_to_area)
df['room'] = df['size'].apply(split_size_to_room)

为了对面积进行数值计算, 我们将‘area’字段进行数值化处理。

def area_(x):
    x = x.strip()
    if len(x)!=0:
        x = x.replace('㎡', '')
        return x
    else:
        return None
        
df.area = df.area.apply(area_)
df.area = df.area.astype(np.float64)

下面就是将非个人类的租房信息取出,主要的策略就是根据面积信息,当面积过大时就将其整行删除,但是还需要考虑的因素是合租的问题,不少人选择的是合租,所以这个面积的阈值也不能太小,因此就选择150吧,当然这个值你可以根据需要自己进行选择。

df.drop(list(df[df.area>150].index), inplace=True)

使用inplace参数指定原地修改。

另外,我们把价格为‘面议’的行全部去除。

df.drop(list(df[df.price == '面议'].index), inplace=True)

上面就是主要的数据预处理的步骤,将数据规格化有助于后面的分析

我们以城市分组,看一下各个城市的平均租房面积和价格

df.groupby('region').mean().sort_values(by='price')

首先看一下江苏省各地级市的平均租房面积

从图表中可以看出,平均租房面积为76平方米,连云港市的平均租房面积最大,南京市的平均租房面积最小,江苏省各经济发达地区的租房面积普遍偏小,这和物价水平密不可分。

接下来就看一下各城市的平均价格

南京市和苏州市的平均租房价格最高,也只有这两座城市的平均价格超过了2000元,宿迁市的平均租房价格最低,
其中平均租房价格为1687元。

接下来看一下,各城市的平均单价。

事实上,单价与经济发展水平成正相关,单价最高的南京市与单价最低的地区价格相差一倍以上。

虽然从上面的图表和数据来看,南京苏州等地区的价格昂贵,面积相对较小,但是另外需要考虑的是经济发展水平和交通状况,高的经济发展水平对应的工资水平也相对较高。

因此以上仅仅作为你选择时候的一个参考。

github

posted @ 2017-10-09 14:05  cnkai  阅读(1257)  评论(0编辑  收藏  举报