江苏省各地级市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元。
接下来看一下,各城市的平均单价。
事实上,单价与经济发展水平成正相关,单价最高的南京市与单价最低的地区价格相差一倍以上。
虽然从上面的图表和数据来看,南京苏州等地区的价格昂贵,面积相对较小,但是另外需要考虑的是经济发展水平和交通状况,高的经济发展水平对应的工资水平也相对较高。
因此以上仅仅作为你选择时候的一个参考。