程序员必知:对厦门二手房的数据分析与可视化分析

简介: 程序员必知:对厦门二手房的数据分析与可视化分析

1、选题背景

房价的迅速飞涨,即将毕业的我们,就要面对高昂的房价,虽然我们不能做出实际行动,但是除此之外我们还可以房价分析。利用科学的技术手段,洞察房价的趋势。本次项目选择了厦门城市,通过了解厦门市二手房的情况,可以帮助人们在购房、出租等方面做出更明智的决策。可以帮助人们了解重庆市经济的发展趋势。随着互联网的发展,越来越多的房地产信息通过网络发布,使用爬虫技术可以方便地收集和分析这些信息。而本次项目选择的数据来源是链家。链家是一家著名的房地产经纪公司,在厦门有着广泛的房地产业务。通过爬取厦门链家发布的二手房信息,可以获得丰富的数据,为分析提供参考。

2、数据//代码效果参考:http://www.zidongmutanji.com/zsjx/431123.html

分析步骤

数据源:链家 网址: 以及厦门二手房的数据爬取网址:

2.1数据采集

该部分通过网络爬虫程序抓取链家网上所有重庆二手房的数据,收集原始数据。通过url到指定的网站进行数据爬取,设置了id,小区名(xiaoquming),价格(jiage),地区(diqu),房屋户型(fangwuhuxing),所在楼层(suozailouceng),建筑面积(jianzhumianji)等字段最后通过save_data()将爬取的数据进行保存。

导入库

import requests,time,csv

import pandas as pd

from lxml import etree

#获取每一页的url

def Get_url(url):

all_url=【】

for i in range(1,101):

all_url.append(url+'pg'+str(i)+'/') #储存每一个页面的url

return all_url

#获取每套房详情信息的url

#获取每套房详情信息的url

def Get_house_url(all_url,headers):

num=0

#简单统计页数

for i in all_url:

r=requests.get(i,headers=headers)

html=etree.html

(r.text)

//代码效果参考:http://www.zidongmutanji.com/bxxx/524472.html

url_ls=html.xpath("//ul【@class='sellListContent'】/li/a/@href") #获取房子的url

Analysis_html(url_ls,headers)

time.sleep(4)

print("第%s页爬完了"%i)

num+=1

获取每套房的详情信息

#获取每套房的详情信息

def Analysis_html(url_ls,headers):

for i in url_ls: #num记录爬取成功的索引值

r=requests.get(i,headers=headers)

html=etree.html

(r.text)

name=(html.xpath("//div【@class='communityName'】/a/text()"))【0】.split() #获取房名

money = html.xpath("//span【@class='total'】/text()" )# 获取价格

area = html.xpath("//span【@class='info'】/a【1】/text()") # 获取地区

data = html.xpath("//div【@class='content'】/ul/li/text()")# 获取房子基本属性

Save_data(name,money,area,data)

把爬取的信息存入文件

#把爬取的信息存入文件

def Save_data(name, money, area, data):

result=【name【0】】+money+【area】+data #把详细信息合为一个列表

with open(r'raw_data.csv','a',encoding='utf_8_sig',newline='')as f:

wt=csv.writer(f)

wt.writerow(result)

print('已写入')

f.close()

if name=='main':

url=''

headers={

"Upgrade-Insecure-Requests":"1",

"User-Agent":"Mozilla/5.0(Windows NT 10.0;Win64;x64) AppleWebKit/537.36(KHTML,like Gecko)Chrome"

"/72.0.3626.121 Safari/537.36"

}

all_url=Get_url(url)

with open(r'raw_data.csv', 'a', encoding='utf_8_sig', newline='') as f:

#首先加入表格头

table_label=【'小区名','价格/万','地区','房屋户型','所在楼层','建筑面积','户型结构','套内面积','建筑类型','房屋朝向'

,'建成年代','装修情况','建筑结构','供暖方式'】

wt=csv.writer(f)

wt.writerow(table_label)

Get_house_url(all_url,headers)

运行结果:

截取了一部分的数据

2.2数据清理

获取数据、数据清洗、查看表格数据、查看是否缺失、删除重复数据

# 从保存的文本中获取数据

def get_data():

raw_data = pd.DataFrame(pd.read_excel('raw_data.csv'))

print("数据清洗前共有%s条数据" % raw_data.size)

clean_data(raw_data)

# 数据清洗

def clean_data(data):

data = data.dropna(axis=1, how='all') # 删除全是空行列

# data.index = data【'小区名'】

# del data【'小区名'】

# 2.查看表格数据

print(data.describe())

# 3.查看是否缺失

print(data.isnull().sum())

# 删除重复数据

data = data.drop_duplicates(subset=None, keep='first', inplace=None)

# 删除‘暂无数据’大于一半数据的列

if ((data【'套内面积'】.isin(【'暂无数据'】)).sum()) > (len(data.index)) / 2:

del data【'套内面积'】

# 把建筑面积列的单位去掉并转换成float类型

data【'建筑面积'】 = data【'建筑面积'】.apply(lambda x: float(x.replace('㎡', '')))

# 提取地区

data【'地区'】 = data【'地区'】.apply(lambda x: x【2:-2】)

# 计算单价

data【'单价'】 = round(data【'价格/万'】 * 10000 / data【'建筑面积'】, 2)

data.to_excel('pure_data.xlsx', encoding='utf-8')

if name == 'main':

get_data()

数据清洗结果:

现在看比清理前规整了很多,更方便观看。

3、数据可视化分析

该阶段主要是对数据从整体上做一个探索性分析并把数据进行可视化呈现,帮助人们更好、更直观的认识数据,把隐藏在大量数据背后的信息集中和提炼出来,总结出所研究对象的内在规律。主要对二手房房源的总价、单价、面积、户型、地区等属性进行了分析。

3.1首先二手房的数据表展示:

house_list = House.objects.all().order_by('id')

input_1 = request.GET.get("searchorders")

input_2 = request.GET.get("dqchaxun")

if input_1:

house_list = House.objects.filter(xiaoquming=input_1)

paginator = Paginator(house_list, 20)

page = request.GET.get('page')

try:

data_1 = paginator.page(page)

except PageNotAnInteger:

data_1 = paginator.page(1) # 输入不是整数返回第一页

except InvalidPage:

# 找不到就重定向

return render(request, 'index.html

', {'house_list': data_1, 'name': input_1})

except EmptyPage: # 不在合法范围就返回最后一页

data_1 = paginator.page(paginator.num_pages)

return render(request, 'index.html

', {'house_list': data_1, 'name': input_1})

3.2户型和楼层的分析

#户型分析

series = df【'fangwuhuxing'】.value_counts()

series.sort_index(ascending=False, inplace=True)

house_type_list = series.index.tolist()

count_list = series.values.tolist()

c = Bar(init_opts=opts.InitOpts(theme=ThemeType.CHALK))

c.add_xaxis(house_type_list)

c.add_yaxis("厦门市", count_list)

c.reversal_axis()

c.set_series_opts(label_opts=opts.LabelOpts(position="right"))

c.set_global_opts(title_opts=opts.TitleOpts(title="厦门二手房各户型横向条形图"),

datazoom_opts=【opts.DataZoomOpts(yaxisindex=0, type="slider", orient="vertical")】, )

c.render("户型分析-条形图.html

")

#楼层分析

Pie(init_opts=opts.InitOpts(width="1600px", height="800px", bg_color="#2c343c"))

.add(

series_name="层段信息",

data_pair=data_pair,

rosetype="radius",

radius="55%",

center=【"50%", "50%"】,

label_opts=opts.LabelOpts(is_show=False, position="center"),

)

.set_global_opts(

title_opts=opts.TitleOpts(

title="Customized Pie",

pos_left="center",

pos_top="20",

title_textstyle_opts=opts.TextStyleOpts(color="#fff"),

),

legend_opts=opts.LegendOpts(is_show=False),

)

.set_series_opts(

tooltip_opts=opts.TooltipOpts(

trigger="item", formatter="{a}

{b}: {c} ({d}%)"

),

label_opts=opts.LabelOpts(color="rgba(255, 255, 255, 0.3)"),

)

3.3价格分析柱状图

from pyecharts import options as opts

<span style="color: rg

相关文章
|
1月前
|
机器学习/深度学习 数据采集 数据可视化
【python】python当当数据分析可视化聚类支持向量机预测(源码+数据集+论文)【独一无二】
【python】python当当数据分析可视化聚类支持向量机预测(源码+数据集+论文)【独一无二】
|
15天前
|
机器学习/深度学习 存储 数据可视化
数据分析和可视化
数据分析和可视化
|
9天前
|
数据采集 传感器 数据可视化
利用Python进行数据分析与可视化
【9月更文挑战第11天】在数字化时代,数据已成为企业决策和科学研究的关键。本文将引导读者了解如何使用Python这一强大的工具进行数据分析和可视化,帮助初学者理解数据处理的流程,并掌握基本的可视化技术。通过实际案例,我们将展示如何从原始数据中提取信息,进行清洗、处理,最终以图形方式展现结果,使复杂的数据变得直观易懂。
|
12天前
|
机器学习/深度学习 人工智能 数据挖掘
数据分析师是在多个行业中专门从事数据搜集、整理和分析的专业人员
数据分析师是在多个行业中专门从事数据搜集、整理和分析的专业人员
22 3
|
1月前
|
存储 编解码 数据可视化
Visium HD空间数据分析、可视化以及整合 (2)
Visium HD空间数据分析、可视化以及整合 (2)
41 3
Visium HD空间数据分析、可视化以及整合 (2)
|
1月前
|
数据可视化 数据挖掘 Python
"揭秘Visium HD黑科技:空间数据分析大揭秘,可视化与整合的艺术之旅!"
【8月更文挑战第20天】近年来,空间转录组技术,特别是Visium HD技术,因其高分辨率与高通量特性,在单细胞生物学领域受到广泛关注。本文通过Python演示了Visium HD数据的全流程分析:从数据准备(读取表达矩阵和空间坐标)、空间数据分析(计算基因表达统计量)、数据可视化(绘制基因表达热图和空间点分布图),到多样本数据整合,为读者提供了实用的分析指南,助力深入探索空间转录组学的奥秘。
59 4
|
1月前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。
|
1月前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。 今天给小伙伴们分享的这份Python数据分析入门手册本着实用性的目的,着眼于整个数据分析的流程,介绍了从数据采集到可视化的大致流程。
|
1月前
|
数据可视化 数据挖掘 索引
【python】Python马铃薯批发市场交易价格数据分析可视化(源码+数据集)【独一无二】
【python】Python马铃薯批发市场交易价格数据分析可视化(源码+数据集)【独一无二】
|
1月前
|
数据可视化 数据挖掘 数据处理
【python】python农产品数据分析可视化(源码+论文+数据)【独一无二】
【python】python农产品数据分析可视化(源码+论文+数据)【独一无二】

热门文章

最新文章