摘要
利用Python开发工具,从网站爬取某网站上的二手房数据,对数据源结合 Pandas、Numpy、Matplotlib、Sklearn 等技术进行分析,获得影响二手房买卖的具体因素。
1.引言
网络爬虫是可以自动抓取网页上各种类型数据的程序。网络爬虫使用网页的链接地址查找网页的内容,并直接返回用户所需的数据,而无需手动操纵浏览器来获取它。爬虫是搜索引擎中的重要组成部分,可在互联网上为搜索引擎抓取数据。通用搜索引擎(例如谷歌和百度)等逐渐成为人们访问互联网的入口。但是,由于它们的通用性限制,在抓取网页时没有针对性,因而也无法对其抓取的结果进行针对特定领域的进一步分析,导致查询结果不够深入和专业化;另外,一般的搜索引擎通常会返回一些与用户所寻找的主题无关的结果,从而造成信息过载。
本文提出的爬虫程序通过模拟登录二手房网站,获取相关数据,并将这些数据保存到本地,为进一步的数据挖掘和分析提供了方便。最后,本文使用Python可视化方法对数据进行简单的数据分析。
2.系统结构
2.1 Python
Python的作者是荷兰人Guido von Rossum。1982年,Guido在阿姆斯特丹大学获得了数学和计算机科学的硕士学位。 与今天相比,在他那个时代,个人计算机的主频和RAM非常低,这导致计算机配置非常低。为了使程序在个人计算机上运行,所有编译器的核心都经过了优化,因为如果不进行优化,则较大的数组会填满内存。Guido希望编写一种新语言,该语言应该具有功能齐全,易于学习,易于使用并且可以扩展的功能。 1989年,Guido开始为Python语言编写编译器。
2.2 Pandas
Pandas是用于Python的数据分析包。 它包含许多高级数据结构和操作工具,可以让人们使用Python进行数据分析更加轻松快捷。
2.3 Numpy
Numpy是使用Python进行科学计算的基础包。它包括一个功能强大的N维数组对象Array。它具有成熟的函数库,例如矩阵数据类型和矢量处理等。
2.4 Matplotlib
数据可视化是数据分析的结果,可以更直观,更优雅地显示结果。Matplotlib库是Python数据可视化的重要类库之一。它包含大量的数据可视化资源,包括地图,3D等。
Matplotlib有四个部分:
(1)Matplotlib的基本figure类型;
(2)调整figure和样式以及颜色;
(3)在图形上添加注释(包括坐标轴范围,长宽比或坐标轴等);
(4)其他复杂图形。
3.具体实现
3.1 数据获取
为了对北京二手房买卖影响因素的具体分析,于是利用Python语言对某网站上的北京二手房数据进行网络爬虫获取,以表格形式展示:
3.2代码实现
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib as mpl
import matplotlib.pyplot as plt
from IPython.display import display
plt.style.use("fivethirtyeight")
sns.set_style({
'font.sans-serif':['simhei','Arial']})
# 导入链家二手房数据
lianjia_df = pd.read_csv('D:\lianjia.csv')
display(lianjia_df.head(n=10))
# 检查缺失值情况
#lianjia_df.info()
lianjia_df.describe()
# 添加新特征房屋均价
df = lianjia_df.copy()
df['PerPrice'] = lianjia_df['Price']/lianjia_df['Size']
# 重新摆放列位置
columns = ['Region', 'District', 'Garden', 'Layout', 'Floor', 'Year', 'Size', 'Elevator', 'Direction', 'Renovation', 'PerPrice', 'Price']
df = pd.DataFrame(df, columns = columns)
# 重新审视数据集
display(df.head(n=10))
# 对二手房区域分组对比二手房数量和每平米房价
df_house_count = df.groupby('Region')['Price'].count().sort_values(ascending=False).to_frame().reset_index()
df_house_mean = d