import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签path='F:/python/从零开始学python网络爬虫/链家网/lianjia-3.xls'
lj=pd.read_excel(path)
'''
对整体数据预览,做个大概统计
'''
print(lj.head())#前5行
print(lj.tail())#后5行
print(lj.columns)#列序列
print(lj.index)#行索引
print(lj.values)#值
print(lj.describe())#汇总统计
print(lj[['面积(平方)','元每平方','价格(万)']])#提取某几列
print(lj[5:9])#切片提取某一段行
print(lj.duplicated())#是否是重复行
print(lj.drop_duplicates())#去重(其实没有重复的)
'''
单独对价格(万)分析,平均值,排序
散点图,价格区间-数量直方图
'''
print(lj['价格(万)'])#提取列,Series格式
print(lj['价格(万)'].mean())#平均房价536.01万
print(lj['价格(万)'].max())#最高房价6480万
print(lj['价格(万)'].idxmax())#在第644行(最先出现的)
print(lj.iloc[644])#调取第644行
print(lj['价格(万)'].min())#最低140万
print(lj['价格(万)'].idxmin())#在第579行(最先出现的)
print(lj.iloc[579])#调取第579行
print(lj['价格(万)'].count())#非nan值的数量
print(lj['价格(万)'].value_counts())#360万出现次数最多
print(lj['价格(万)'].sort_values())#按值排序
print(lj.sort_values(by='价格(万)'))#通过价格(万)排序
print(lj['价格(万)'].sort_values(ascending=False))#按值排序(降序)
print(lj['价格(万)'][lj['价格(万)']==1620])#提取所有价格为1620万
print(lj[lj['价格(万)']==1620])#提取所有价格为1620万
a=lj['价格(万)']
plt.scatter(np.arange(1197),a[a<3000].values,s=2,c='r',label='价格(万)')#小于3000万价格散点图
plt.axhline(200,color='k',alpha=0.4)#200万处画条线
plt.axhline(400,color='k',alpha=0.4)
plt.axhline(600,color='k',alpha=0.4)
plt.xlim([0,1200])
plt.yticks([0,200,400,600,800,1000,1500,2000,2500,3000])
plt.xlabel('索引')
plt.ylabel('价格(万)')
plt.title('价格(万)散点图')
plt.legend(loc='best')
fig=plt.figure()
ax=fig.add_subplot(111)
a[a<1500].hist(bins=20,color='g')#价格区间与区间内数量
ax.set_xticks([100,200,300,400,500,600,700,800,900,1000,1500])
plt.xlabel('价格(万)')
plt.ylabel('数量')
plt.title('不同区间价格(万)数量直方图')
plt.legend(loc='best')
'''
单独对面积每平方分析,均值,最大最小值,排序
元每平方散点图,元每平方价格区间-价格数量直方图
'''
print(lj['元每平方'])#提取列,Series格式
print(lj['元每平方'].mean())#平均价格65452.785元/平方
print(lj['元每平方'].max())#最高价格157828元/平方
print(lj['元每平方'].idxmax())#在第184行(最先出现的)
print(lj.iloc[184])#调取第15行
print(lj['元每平方'].min())#最低价格29032元/平方
print(lj['元每平方'].idxmin())#在第193行(最先出现的)
print(lj.iloc[193])#调取第193行
print(lj['元每平方'].count())#非nan值的数量
print(lj['元每平方'].value_counts())#83333出现次数最多
print(lj['元每平方'].sort_values())#按值排序
print(lj.sort_values(by='元每平方').head(10))
print(lj.sort_values(by='元每平方',ascending=False).head(10))
print(lj['元每平方'][lj['元每平方']==83333])#提取所有价格为36288元/平方
print(lj[lj['元每平方']==83333])#提取所有价格为36288元/平方
b=lj['元每平方']
fig=plt.figure()
ax=fig.add_subplot(111)
plt.scatter(np.arange(1200),b.values,s=4,c='r',label='元每平方')#部分价格散点图
plt.axhline(30000,color='k',alpha=0.5)#30000处画条线
plt.axhline(40000,color='k',alpha=0.5)
plt.axhline(60000,color='k',alpha=0.5)
plt.axhline(80000,color='k',alpha=0.5)
plt.xlim([0,1200])
plt.xlabel('索引')
plt.ylabel('元每平方')
plt.title('元每平方价格散点图')
plt.legend(loc='best')
fig=plt.figure()
ax=fig.add_subplot(111)
b.hist(bins=20,color='g')#元每平方价格区间-价格数量
ax.set_xticks([30000,40000,50000,60000,70000,80000,90000,100000,110000,120000,130000])
ax.set_xticklabels(['3万','4万','5万','6万','7万','8万','9万','10万','11万','12万','13万'],rotation=30)
plt.xlabel('元每平方')
plt.ylabel('数量')
plt.title('元每平方价格区间-价格数量直方图')
plt.legend(loc='best')
'''
对地区及不同地区出售二手房数量统计分析
'''
print(lj['地区'])#提取列
print(lj['地区'].value_counts())#按出现频次
c=lj['地区'].value_counts()
fig=plt.figure()
ax=fig.add_subplot(111)
rect=c.plot(kind='bar',color='y')#地区与房数量的柱状图
plt.xlabel('地区')
plt.ylabel('数量')
plt.title('不同地区出售二手房数量柱状图')
#上面不会在条形图上标数值,下面方法可以标数值
fig=plt.figure()
ax=fig.add_subplot(111)
x=np.arange(14)
y=c.values
rect=ax.bar(x,y)
for rec in rect:xx=rec.get_x()hh=rec.get_height()ax.text(xx+0.05,1.02*hh,str(int(hh)))
ax.set_xticks(x)
ax.set_xticklabels(c.index,rotation=30)
ax.set_xlabel('地区')
ax.set_ylabel('数量')
ax.set_title('不同地区出售二手房数量柱状图')
'''
单独对二手房面积统计分析,平均值,最大最小值,排序,
面积散点图,面积区间-二手房数量直方图
'''
print(lj['面积(平方)'])#提取列,Series格式
print(lj['面积(平方)'].mean())#平均面积79.49平方米
print(lj['面积(平方)'].max())#最大面积740.75平方米
print(lj['面积(平方)'].idxmax())#在第644行(最先出现的)
print(lj.iloc[644])#调取第644行
print(lj['面积(平方)'].min())#最小面积25.2平方米
print(lj['面积(平方)'].idxmin())#在第1026行(最先出现的)
print(lj.iloc[1026])#调取第1026行
print(lj['面积(平方)'].count())#非nan值的数量
print(lj['面积(平方)'].value_counts())#44出现次数最多
print(lj['面积(平方)'].sort_values())#按值排序
print(lj['面积(平方)'][lj['面积(平方)']==44])#提取所有面积为44平方米
print(lj[lj['面积(平方)']==44])#提取所有面积为44平方米
d=lj['面积(平方)']
fig=plt.figure()
ax=fig.add_subplot(111)
plt.scatter(np.arange(1200),d.values,s=4,c='r',label='面积(平方)')#部分面积散点图
plt.axhline(25,color='k',alpha=0.5)#50处画条线
plt.xlim([0,1200])
plt.ylim([0,400])
plt.xlabel('索引')
plt.ylabel('面积(平方)')
plt.title('二手房面积散点图')
plt.grid(True)
plt.legend(loc='best')
fig=plt.figure()
ax=fig.add_subplot(111)
d[d<350].hist(bins=30,color='g')#价格区间及出现频次
ax.set_xticks([25,50,75,100,125,150,175,200,250,300,350])
plt.axvline(40,color='k',alpha=0.4)
plt.axvline(70,color='k',alpha=0.4)
plt.xlabel('面积(平方)')
plt.ylabel('数量')
plt.title('二手房面积-数量直方图')
plt.legend(loc='best')
'''
面积与总价格多项式拟合曲线
'''
e=lj[lj['面积(平方)']<250]
x=e['面积(平方)']
y=e['价格(万)']
z1 = np.polyfit(x, y, 2)#多项式系数
p1 = np.poly1d(z1)#多项式方程
x1=np.linspace(x.min(),x.max(),1000)
pp1=p1(x1)#代入数值绘制曲线
fig=plt.figure()
ax=fig.add_subplot(111)
plt.scatter(x,y,color='b',label='散点图',s=1,alpha=0.5)#x,y散点图
#plt.plot(x,y,color='r',label='连线图')#x,y线形图
plt.plot(x1,pp1,color='k',label='拟合图')#100个x及对应y值绘制的曲线
plt.xlabel('面积(平方)')
plt.ylabel('价格(万)')
plt.title('面积与总价格多项式拟合曲线')
plt.legend(loc='best')
'''
各地区价格、数量统计
'''
f=lj[['价格(万)','地区']]
total=[]
diqus=['浦东','杨浦','徐汇','闵行','宝山','普陀','长宁','闸北','虹口','黄浦','松江','静安','嘉定','青浦']
for i in diqus:diqu=f[f['地区']==i]['价格(万)']shuliang=len(diqu)zuida=diqu.max()zuixiao=diqu.min()pingjun=int(diqu.mean())total.append({'地区':i,'数量(套)':shuliang,'最大(万)':zuida,'最小(万)':zuixiao,'平均(万)':pingjun})
print(total)
diqu_jiage=pd.DataFrame(total)
qudiqu=diqu_jiage.iloc[:,1:5].values
gediqu=pd.DataFrame(qudiqu,index=diqus,columns=['平均(万)','数量(套)','最大(万)','最小(万)'])
gediqu.plot()
fig=plt.figure()
ax=fig.add_subplot(111)
gediqu['平均(万)'].plot(xticks=range(14),style='go-',label='均价(万)')
ax.set_xticklabels(diqus,rotation=30)
ax.set_xlabel('地区')
ax.set_ylabel('价格(万)')
ax.set_title('不同地区-价格(万)')
ax.legend(loc='best')g=lj[['元每平方','地区']]
total2=[]
diqus2=['浦东','杨浦','徐汇','闵行','宝山','普陀','长宁','闸北','虹口','黄浦','松江','静安','嘉定','青浦']
for ii in diqus2:diqu2=g[g['地区']==ii]['元每平方']pingjun2=int(diqu2.mean())total2.append({'地区':ii,'平均元每平方':pingjun2})
print(total2)
diqu_yuan=pd.DataFrame(total2)
fig=plt.figure()
ax=fig.add_subplot(111)
diqu_yuan['平均元每平方'].plot(xticks=range(14),style='bo-',label='元每平方')
ax.set_xticklabels(diqus2,rotation=30)
ax.set_xlabel('地区')
ax.set_ylabel('平均元每平方')
ax.set_title('不同地区-平均元每平方')
ax.legend(loc='best')

链家网二手房数据分析(承接上篇爬虫)相关推荐

  1. python爬取链家新房_Python爬虫实战:爬取链家网二手房数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 买房装修,是每个人都要经历的重要事情之一.相对于新房交易市场来说,如今的二手房交易市场一点也 ...

  2. 数据分析:pandas分析链家网二手房信息

    分析链家网南京市二手房信息 链家网二手房数据的采集方法参见之前的博客:数据采集(四):用XPath爬取链家网房价数据 总共有3000条二手房信息记录. import pandas as pd impo ...

  3. python爬取链家新房数据_Python爬虫实战:爬取链家网二手房数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 买房装修,是每个人都要经历的重要事情之一.相对于新房交易市场来说,如今的二手房交易市场一点也 ...

  4. 2020链家杭州二手房数据分析(截止到2020年09月07日)

    2020链家杭州二手房数据分析(截止到2020年09月07日) 1 项目背景 通过python爬去链家杭州二手房的数据,网址为:https://hz.lianjia.com/ershoufang/.可 ...

  5. 爬取链家网二手房数据并保存到mongodb中

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 爬取链家网二手房数据并保存到mongodb中 文章目录 前言 一.爬虫的介绍 二.协程的介绍 三.css选择器 四.基于asyncio ...

  6. python二手房使用教程_python实战:基于链家网二手房数据解析任务

    实战:基于链家网二手房数据解析任务 页面:https://bd.ke.com/ershoufang/ 获取如下信息: 标题 位置 房屋信息 关注人数 / 发布时间 房屋总价 房屋单价 备注信息 1.导 ...

  7. Python爬虫攻略(2)Selenium+多线程爬取链家网二手房信息

    申明:本文对爬取的数据仅做学习使用,请勿使用爬取的数据做任何商业活动,侵删 前戏 安装Selenium: pip install selenium 如果下载速度较慢, 推荐使用国内源: pip ins ...

  8. 爬虫实例5:使用scrapy框架获取链家网二手房最新信息(获取单个城市所有街区二手房信息可以使用selenium动态获取页数)

    1-首先进行分析链家网 链家网址:https://www.lianjia.com/city/ 获取省市 2-创建文件 打开虚拟机或者powershell 执行命令scrapy startproject ...

  9. python 爬虫 链家网二手房信息采集代码

    直接上代码吧,应该很好理解 import requests import lxml.html import time from fake_useragent import UserAgent impo ...

最新文章

  1. MFC全局函数开局——AfxGetApp解剖
  2. 电子商务javaweb b2b b2c o2o平台
  3. 《极乐迪斯科》:一趟充满新奇的旅程 ,一款里程碑式的 CRPG
  4. 【图文详解】JAVA字面量和变量
  5. 工作中的沟通及信息传递
  6. Spark之SparkStreaming的DStream操作
  7. 搞机的神器们——Xposed,Magisk,TaiChi(太极)的安装使用
  8. 父母的房产继承买卖赠予以及网络红包代金券优惠券的国家最新税法规定
  9. 内网渗透总结二:第二步管理员密码的明文和hash获取
  10. Spark2.1.0 + CarbonData1.0.0集群模式部署及使用入门
  11. 基于石墨烯的光电探测传感器研究
  12. DOXYGEN简明实用教程
  13. 用友盟社会化组件,分享到微信和新浪微博
  14. 【Java】两层for循环 break跳出
  15. python-圆形检测-封闭轮廓检测
  16. 大咖面对面 | Suji:从福岛到Mask Network
  17. 天翼云客户端(天翼云盘)V6.1.0 最新版
  18. msa2000映射到服务器,MSA2000命令行配置信息
  19. composer修改成国内镜像
  20. mxGraph中mxStencil的使用教程

热门文章

  1. ODN 2395丨艾美捷CpG ODN系列参数介绍
  2. Qt 之图形(QPainterPath)
  3. 3G/4G路由器方案之外置硬件看门狗设计
  4. 堆及新生代老生代(学习笔记)
  5. 项目管理sod_内部控制之“SOD”密
  6. 计算机图形生成的基本单位是,第五章 基本图形生成算法
  7. 怎样基于power supply class编写PSY driver
  8. 【C语言】sizeof常量字符串
  9. 关于百度飞浆安装不成功的坑
  10. Sophie Mapuis