版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京⼆⼿房价数据分析⼀、报告背景:根据某房价平台数据,通过数据分析,知晓各区⼆⼿房价状况。⼆、⽬的:报告⽬的:通过数据完成⼀份Python的⼆⼿房价分析报告。分析⽬的:1、找到影响⼆⼿房价的因素是:区域?房间数?⼤厅数?⾯积数?楼层?有⽆地铁?有⽆学区?谁的影响因素最⼤?如何排序?2、寻找⼆⼿房低洼处投资。四、代码解析:(1)、数据基本情况#导⼊库importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimportseabornassns#读取数据df=pd.read_csv(r"C:\Users\41174\Desktop\sndHsPr.csv")#价格单位元转化成万元df.price=df.price/10000#数据分析开始3部曲print(df.head())print(())print(df.describe())如图,dist是地区,roomnum是房间数,halls是⼤厅数,AREA是房间⾯积,floor是楼层⾼度,AREA是⾯积(单位平⽅⽶),subway是地铁(1代表有,0代表⽆),school是学校(1代表有,0代表⽆),price,代表价格(单位万元)如图,dist和floor是字符串类型,其余都是数值型数据,同时没有脏数据和缺漏数据如图,数据样本量:16210。在没有通过图表发现数据的整体异常值时,先以平均数为基准看基本情况,但通过后⾯的分析会发现,存在许多异常值,所以专业分析需要看中位数。现在先分析基本平均信息:roomnum2.1,⼤厅1.2,⾯积91.7,地铁0.83,学校0.3,房价6.1万/每平⽅⽶。通过基本平均信息可以知道,房间正常属于⼤众型刚需型,基本有地铁,但⽆学校。根据《⼀出好戏》的3句经典台词分析:1、稀缺2、消耗3、希望。地铁、房间等基本配置都属于消耗资源,不会产⽣杠杆或者增值价值,属于消耗品,属于保值或贬值品。但学校属于孩⼦和未来的希望,属于增值品,同时⼜稀缺,疯抢和增值空间明显增⼤,但随着移动互联⽹的教育资源兴起,和教育改⾰,该现象期待改变。fromscipyimportstatsprint(df.price.describe())print('众数',stats.mode(df.price)[0][0])如图,价格(单位万/每平⽅⽶)平均数6.1,中位数5.7,众数5。dict1={u'chaoyang':"朝阳",u'dongcheng':"东城",u'fengtai':"丰台",u'haidian':"海淀",u'shijingshan':"⽯景⼭",u'xicheng':"西城"}#将拼⾳转化成中⽂df.dist=df.dist.apply(lambdax:dict1[x])print(pd.concat([(df[df.price==min(df.price)]),(df[df.price==max(df.price)])]))最⾼房价:西城3房,1厅,78平⽅⽶,低楼层,有地铁,⽆学区,价格15万每平⽅⽶。最低房价:丰台2房,2厅,101平⽅⽶,⾼楼层,⽆地铁,⽆学区,价格,1.8万每平⽅⽶。foriinrange(7):ifi!=3:print(df.columns.values[i],";")print(df[df.columns[i]].agg(['value_counts']).T)print("=======================================================================")else:continueprint("AREA:")print(df.AREA.agg(['min','mean','median','max','std']).T)如图:房源:丰台区域房源最多2947套,⽯景⼭最少房源1947套。房数:2房最多7971套,5房最少102套。厅数:1厅最多11082套,3厅最少85套。楼层:⼏乎相等。地铁:有地铁13419套,没地铁2791套。学校:有学校4913套,没学校11297套。(稀缺)⾯积:最⾼299平⽅⽶,最低30平⽅⽶。总结:学区房最稀缺。(2)、图表基本情况#解决中⽂乱码问题plt.rcParams['font.sans-serif']=['SimHei']sns.distplot(df.price,color='lightblue',bins=20,kde=True)plt.xlabel("单位⾯积房价(万元/平⽅⽶)")plt.ylabel("密度")plt.title('房价密度直⽅图')plt.show()如图,直⽅图曲线图右侧有较多异常值,属于正偏或右偏正态曲线,不能使⽤平均值,需要使⽤中位数,房价中位数是5.7万每平⽅⽶。(3)、盒须图①、单因素分析df.groupby('dist').median().price.sort_values(ascending=False)df.boxplot(column='price',by='dist')plt.show()如图,显⽰各区价格盒须图,盒须图⾼低⽆序,通过什么⽅法让视图清晰可见,容易分析?#显⽰各区中位数从⾼到低排序。print(df.groupby('dist').median().price.sort_values(ascending=False))df.dist=df.dist.astype('category')#根据各区中位数排序,调整区域先后顺序。df.dist.cat.set_categories(['西城','东城','海淀','朝阳','丰台','⽯景⼭'],inplace=True)df.boxplot(column='price',by='dist')plt.show()如图,区域明显与价格成强相关。区域差异最⼤是西城与⽯景⼭,故后⾯分析时采⽤西城与⽯景⼭的分析。print(df.groupby('roomnum').median().price.sort_values(ascending=False))df.roomnum=df.roomnum.astype('object')df.roomnum=df.roomnum.astype('category')df.roomnum.cat.set_categories([4,1,5,3,2],inplace=True)df.boxplot(column='price',by='roomnum')plt.show()如图,房间数与价格成弱相关。print(df.groupby('halls').median().price.sort_index(ascending=False))df.halls=df.halls.astype('category')df.halls.cat.set_categories([0,1,2,3],inplace=True)df.boxplot(column='price',by='halls')plt.show()如图,⼤厅数与价格成弱相关。df.plot.scatter(x='price',y='AREA')plt.show()如图,⾯积与价格关系暂时⽆法确定。print(df.groupby('floor').median().price.sort_index(ascending=False))df.floor=df.floor.astype('category')df.floor.cat.set_categories(['middle','low','high'],inplace=True)df.boxplot(column='price',by='floor')plt.show()如图,楼层与价格成弱相关。print(df.groupby('subway').median().price.sort_index(ascending=False))df.subway=df.subway.astype('category')df.subway.cat.set_categories([1,0],inplace=True)df.boxplot(column='price',by='subway')plt.show()如图,地铁与价格成强相关。print(df.groupby('school').median().price.sort_index(ascending=False))df.school=df.school.astype('category')df.school.cat.set_categories([1,0],inplace=True)df.boxplot(column='price',by='school')plt.show()如图,学校与价格成强相关。综上可知,区域、地铁、学校与价格关系密切,其余因素关系不密切,忽略不计。②、双因素分析print(df.groupby(['dist','school']).median().price.sort_index(ascending=False).unstack())df.boxplot(column='price',by=['dist','school'],figsize=(12,6))plt.show()如图可知,1、(西城,1)-(西城,0)>(西城,1)-(东城,1),可知学区因素>区域因素,分析其余情况基本类似。2、(⽯景⼭,1)价格<(⽯景⼭,0),明显存在被低估的价格,很可能是潜⼒股,可以先调查后投资。print(df.groupby(['school','subway']).median().price.sort_index(ascending=False).unstack())df.boxplot(column='price',by=['school','subway'],figsize=(12,6))plt.show()如图可知,(1,1)-(1,0)<(1,1)-(0,1),因此学区因素>地铁因素。print(df.groupby(['dist','subway']).median().price.sort_index(ascending=False).unstack())df.boxplot(column='price',by=['dist','subway'],figsize=(12,6))plt.show()如图,(西城,1)-(西城,0)>(西城,1)-(东城,1),因此学区因素>区域因素。③、多因素分析print(df.groupby(['dist','school','subway']).median().price.sort_index(ascending=False).unstack())df.boxplot(column='price',by=['dist','school','subway'],figsize=(20,10))plt.xticks(rotation=90)plt.show()如图可知,(丰台,1,0)与(⽯景⼭,1,1)和(⽯景⼭,1,0)明显存在低估,可以先调查,然后投资。综合如上分析可知:1、单因素、双因素和多因素分析,可知学区因素>地区因素>地铁因素>其他因素。2、(丰台,1,0)与(⽯景⼭,1,1)和(⽯景⼭,1,0)明显存在低估,可以先调查,然后投资。五、完整代码#导⼊库importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimportseabornassns#读取数据df=pd.read_csv(r"C:\Users\41174\Desktop\sndHsPr.csv")#价格单位元转化成万元df.price=df.price/10000#数据分析开始3部曲print(df.head())print(())print(df.describe())fromscipyimportstatsprint(df.price.describe())print('众数',stats.mode(df.price)[0][0])dict1={u'chaoyang':"朝阳",u'dongcheng':"东城",u'fengtai':"丰台",u'haidian':"海淀",u'shijingshan':"⽯景⼭",u'xicheng':"西城"}#将拼⾳转化成中⽂df.dist=df.dist.apply(lambdax:dict1[x])print(pd.concat([(df[df.price==min(df.price)]),(df[df.price==max(df.price)])]))foriinrange(7):ifi!=3:print(df.columns.values[i],";")print(df[df.columns[i]].agg(['value_counts']).T)print("=======================================================================")else:continueprint("AREA:")print(df.AREA.agg(['min','mean','median','max','std']).T)#解决中⽂乱码问题plt.rcParams['font.sans-serif']=['SimHei']sns.distplot(df.price,color='lightblue',bins=20,kde=True)plt.xlabel("单位⾯积房价(万元/平⽅⽶)")plt.ylabel("密度")plt.title('房价密度直⽅图')plt.show()df.groupby('dist').median().price.sort_values(ascending=False)df.boxplot(column='price',by='dist')plt.show()#显⽰各区中位数从⾼到低排序。print(df.groupby('dist').median().price.sort_values(ascending=False))df.dist=df.dist.astype('category')#根据各区中位数排序,调整区域先后顺序。df.dist.cat.set_categories(['西城','东城','海淀','朝阳','丰台','⽯景⼭'],inplace=True)df.boxplot(column='price',by='dist')plt.show()print(df.groupby('roomnum').median().price.sort_values(ascending=False))df.roomnum=df.roomnum.astype('object')df.roomnum=df.roomnum.astype('category')df.roomnum.cat.set_categories([4,1,5,3,2],inplace=True)df.boxplot(column='price',by='roomnum')plt.show()print(df.groupby('halls').median().price.sort_index(ascending=False))df.halls=df.halls.astype('category')df.halls.cat.set_categories([0,1,2,3],inplace=True)df.boxplot(column='price',by='halls')plt.show()df.plot.scatter(x='price',y='AREA')plt.show()print(df.groupby('floor').median().price.sort_index(ascending=False))df.floor=df.floor.astype('category')df.floor.cat.set_categories(['middle','low','high'],inplace=True)df.boxplot(column='price',by='floor')plt.show()print(df.groupby('subway').median().price.sort_index(ascending=False))df.subway=df.subway.astype('category')df.subway.cat.set_categories([1,0],inplace=True)df.boxplot(column='price',by='subway')plt.show()print(df.groupby('school').median().price.sort_index(ascend
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论