# 看一下均价这么贵的房子在哪呢
data[data['均价']>300000]
有三个在兴国路,兴国路位于上海市中心两条著名的马路(北起华山路,南至淮海中路)之间。在周边霓虹闪烁、人群喧涌、一派繁华的背景下,这里依然宁静超脱。具有丰富的人文景观和历史底蕴,是上海西区极有小资情调的区域之一。
兴国路324号——赵祖康(旧上海最后一任市长)旧居;
兴国路78号——兴国宾馆,“兴国宾馆”算得上是兴国路的地标了,位于领馆区中心,坐拥市内独一无二的7万余平方米的花园,是上海市区花园别墅宾馆之一。这里也是现存上海市中心最大的别墅群,拥有20多幢风格迥异的别墅,大多建于上世纪二三十年代,囊括了英国乡村别墅,法式和西班牙式洋楼。
house["挂牌时间"] = pd.to_datetime(house["挂牌时间"])
house["挂牌时间-年"] = house["挂牌时间"].dt.year
print(house[["挂牌时间", "挂牌时间-年"]])
guapai_year = house.groupby(by=house['挂牌时间-年']).size()
plt.plot(guapai_year.index, guapai_year.values, color='r', linestyle=':', linewidth=1.2, marker='*', markersize=7,
markerfacecolor='b', markeredgecolor='g')
plt.title("历年上海二手房挂牌量趋势图")
plt.xlabel("挂牌年份")
plt.savefig("./历年上海二手房挂牌量趋势图.jpg")
plt.show()
由于已经出售的二手房不在我们考虑和分析之内,我们数据都是目前仍在挂牌未出售的二手房,所以2017年之前的数量趋近于0,可能前些年挂牌的二手房已经出售,所以爬取不到挂牌信息。故不能由此判断今年二手房市场较往年更活跃,但是从图中我们可以看出目前的二手房大都是2020年挂牌的。
house["挂牌时间-月"] = house["挂牌时间"].dt.month
house_2020 = house[house["挂牌时间-年"]==2020]
house_2020_cnt = house_2020.groupby(by="挂牌时间-月").size()
plt.plot(house_2020_cnt.index, house_2020_cnt.values, color='r', linestyle=':', linewidth=1.2, marker='*', markersize=7,
markerfacecolor='b', markeredgecolor='g')
plt.title("2020年上海二手房挂牌量趋势图")
plt.xlabel("2020年不同月份")
plt.savefig("./2020年上海二手房挂牌量趋势图.jpg")
plt.show()
今年一二月受疫情影响,上海二手房挂牌量较低,随着疫情情况缓和,从三月起上海二手房挂牌量逐渐增加。2020年上半年6月份当月的挂牌量是最大的。
crosstab = pd.pivot_table(data=house_2020,
index=["挂牌时间-月"],
columns=["区"],
aggfunc='count',
values="上次交易",
margins=True,
margins_name="总数量"
)
crosstab.sort_values(by='总数量',axis=1).style.background_gradient().set_caption("2020年上海各区各月房屋挂牌量")
plt.figure(figsize=(8,6),dpi=100)
plt.plot(guapai_2020_qu.index,guapai_2020_qu.values, marker='*')
plt.xlabel("挂牌月份")
plt.title("2020年上海各区二手房挂牌量趋势图")
plt.legend(guapai_2020_qu.columns)
plt.savefig("./2020年上海各区二手房挂牌量趋势图.jpg")
plt.show()
奉贤、黄浦、金山是挂牌量较少的区域,而闵行、浦东的挂牌量缺逐月递增。
mean_years = house[['挂牌时间-年','均价']].groupby(by="挂牌时间-年").mean()
print(mean_years)
plt.bar(mean_years.index, mean_years["均价"])
plt.xlabel("挂牌年份")
plt.title("历年上海二手房均价趋势图")
plt.savefig("./历年上海二手房均价趋势图.jpg")
plt.show()
虽然不想承认,但是上海二手房房屋均价呈每年递减的趋势。主要原因可能如下:
1、政府限价:求新加推价格不高于前期开盘价格;
2、集中加推:近些年上海集中入市项目数量较多,且基本加推套数都比较多;
3、政府限签:控制高价盘签约数量和时间,通过拉长周期来降低平均值;
4、二手房下降:由于新房限价,二手房价格下降,交易周期变长需求量收到抑制
mean_2020 = house_2020[['挂牌时间-月','均价']].groupby(by="挂牌时间-月").mean()
plt.plot(mean_2020.index, mean_2020["均价"],
color='r', linestyle=':',linewidth=1.2,marker='*',
markersize=7,markerfacecolor='b',markeredgecolor='g')
plt.xlabel("挂牌年份")
plt.title("2020年上海二手房均价趋势图")
plt.savefig("./2020年上海二手房均价趋势图.jpg")
plt.show()
2020年上半年上海二手房均价在55100元/平米附近波动,4月份至54150元/平米。
mean_2020_qu = pd.pivot_table(data=house_2020,
index=["挂牌时间-月"],
columns=["区"],
aggfunc='mean',
values="均价",
margins=True,
margins_name="总数量"
)
pd.set_option('precision', 1)
mean_2020_qu.style.background_gradient(subset=None,axis=1).set_caption("2020年上海各区二手房均价走势")
mean_2020_qu = mean_2020_qu.unstack().to_frame().reset_index().rename(columns = {"level_0":"区",0:"均价"})
def qu_line(df):
line = pyc.Line(init_opts=opts.InitOpts(width="900px", height="600px"))
line = line.add_xaxis(xaxis_data=range(1, 8))
for i in df['区'].unique():
line = line.add_yaxis(
series_name=i, y_axis=df[df['区'] == i]['均价'], is_smooth=True)
return line.set_global_opts(title_opts=opts.TitleOpts(title="2020年上海各区二手房均价趋势图"),
toolbox_opts=opts.ToolboxOpts(is_show=True),
legend_opts=opts.LegendOpts(pos_top='30', pos_left='10%'),
tooltip_opts=opts.TooltipOpts(is_show=True,
)).set_series_opts(label_opts=opts.LabelOpts(is_show=False)).render_notebook()
qu_line(mean_2020_qu)
mean_2020_qu_min_max = mean_2020_qu.sort_values(by="均价")
mean_2020_qu_min_max.head()
mean_2020_qu_min_max.tail()
黄浦区的房屋均价是上海最高的,最低是金山区。
pyc.Map(init_opts=opts.InitOpts(height='500px', width='500px'))\
.add(maptype="上海", series_name="均价", data_pair=[list(i) for i in house[house['挂牌时间-年']== 2020].groupby(by=['区'])['均价'].mean().apply(round).items()], is_map_symbol_show=False, is_selected=True, label_opts=opts.LabelOpts(
is_show=False)).set_global_opts(tooltip_opts=opts.TooltipOpts(formatter="{b}:{c}元/平米"), visualmap_opts=opts.VisualMapOpts(max_=100000, pos_right='5%', pos_bottom='20%', is_calculable=True), title_opts=opts.TitleOpts(title="2020年上半年上海二手房均价图", subtitle="数据截至2020年7月\n数据来源:链家网 "), toolbox_opts=opts.ToolboxOpts(), legend_opts=opts.LegendOpts(is_show=False)).render_notebook()
从图中可以发现,越靠近市中心,房价越贵
ax6 = sns.scatterplot(x='建筑面积',y='价格',data=data,hue='区',alpha=0.8)
ax6.set_title("建筑面积与售价的关系")
plt.savefig("./建筑面积与售价的关系.jpg")
plt.show()
整体上建筑面积越大价格越高,但是众所众知,房价还是受到其他因素的影响。可以看到大于1500平的房子价格并不是最高的。那看一下最贵的房子吧。
house[house["价格"]>35000]
坐标人民广场凤阳路338号,建筑面积1339平米,总价3.8亿,均价283870元/平米。
huxing = house['房屋户型'].where(house['房屋户型'].isin(
['2室1厅1厨1卫', '1室1厅1厨1卫', '2室2厅1厨1卫', '3室2厅1厨2卫', '3室1厅1厨1卫', '2室1厅1厨2卫']), other='其他', errors='ignore')
pyc.Pie(init_opts=opts.InitOpts(height='600px', width='600px')).add(series_name='房屋户型', data_pair=huxing.value_counts().items(), radius=(100, 150), rosetype="radius", label_opts=opts.LabelOpts(
is_show=True, formatter="{b}\n{c}套\n{d}%")).set_global_opts(title_opts=opts.TitleOpts(title="上海二手房挂牌房屋户型", subtitle="数据截至2020年7月\n数据来源:链家网 "), toolbox_opts=opts.ToolboxOpts()).render_notebook()
除去备注不明确户型,23.16%的二手房出售房屋户型都是两室一厅一厨一卫,15.65%的是一室一厅一厨一卫,14.41%的是两室两厅一厨一卫。可以看出大部分出售的二手房都是小户型,也是人们生活中的早期买小户型,之后出售换置大户型。
house['房价分层'] = pd.cut(house['价格'], bins=[-np.inf, 100, 300, 500, 800, 1000, np.inf], right=True,
labels=['100万以内', '100-300万', '300-500万', '500-800万', '800-1000万', '1000万及以上'])
pyc.Pie(init_opts=opts.InitOpts(height='500px', width='500px')).add(series_name="房价", data_pair=house['房价分层'].value_counts().items(), radius=(100, 150), rosetype=True, label_opts=opts.LabelOpts(
formatter="{b}\n{c}套\n{d}%")).set_global_opts(title_opts=opts.TitleOpts(title="上海房价分层", subtitle="数据截至2020年7月\n数据来源:链家网 ")).render_notebook()
可以看出100-300万和300-500的房子,分别占了34.79%和29.73%,价格相对较低的房子更容易进行市场流通和交易出售。
pyc.Pie(init_opts=opts.InitOpts(height='500px', width='500px')).add(series_name="环线", data_pair=house['环'].replace("", "暂无数据").value_counts().items(), radius=(100, 150), rosetype=True, label_opts=opts.LabelOpts(
formatter="{b}\n{c}套\n{d}%")).set_global_opts(title_opts=opts.TitleOpts(title="二手房所属环线", subtitle="数据截至2020年7月\n 中公优就业 ")).render_notebook()
交易最多的是外环外和内环内
data_pair = house[house['挂牌时间-年'] == 2020].groupby(by=['区'])['均价'].mean().reset_index().values.tolist()
hot_list =['四川北路','中山公园','漕河泾','徐家汇','陆家嘴','南京西路','南京东路','人民广场','淮海中路','虹桥','北外滩','新天地','静安寺']
hot = house[house['镇'].isin(hot_list)].groupby(by='镇')['均价'].agg(['mean','count']).sort_values(by='count',ascending=True)
hot_list = ['四川北路', '中山公园', '漕河泾', '徐家汇', '陆家嘴', '南京西路',
'南京东路', '人民广场', '淮海中路', '虹桥', '北外滩', '新天地', '静安寺']
hot = house[house['镇'].isin(hot_list)].groupby(by='镇')['均价'].agg(
['mean', 'count']).sort_values(by='count', ascending=True)
pyc.Bar().add_xaxis(hot.index.to_list()).add_yaxis(series_name="", yaxis_data=hot['count'].tolist(), label_opts=opts.LabelOpts(is_show=False)).reversal_axis(
).set_global_opts(title_opts=opts.TitleOpts(title="热门商圈挂牌数", subtitle="崇明区缺少相应房源数据;数据截至2020年7月\n数据来源:链家网 "), toolbox_opts=opts.ToolboxOpts()).render_notebook()
可以发现中山公园和徐家汇的挂牌数量最多
pyc.Bar().add_xaxis(hot.index.to_list()).reversal_axis().add_yaxis(series_name="", yaxis_data=hot['mean'].tolist(), label_opts=opts.LabelOpts(is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title="热门商圈均价", subtitle="数据截至2020年7月\n数据来源:链家网 "), toolbox_opts=opts.ToolboxOpts()).render_notebook()
但是对于价格来说,还是新天地的价格是最高的,超过12万啦
2020年上半年上海二手房挂牌量稳步上涨,均价在55100元/平米附近波动。
除了虹口区以外各区的二手房均价在第二季度都趋于缓和。
100万以下的房源几乎所剩无几,主要价位集中在500万内。
外环外的房源占比较大,是因为嘉定、闵行、宝山等区的挂牌量较高。
二手房出售挂牌交易最多还是小户型