欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

二手房数据的分析与挖掘(二)-- 数据处理

程序员文章站 2024-01-24 20:07:16
...

实验环境

Windows7
Anaconda3
pandas
numpy

实验内容

在Jupyter notebook中利用numpy、pandas、matplotlib进行数据的相关处理。

实验步骤

一、数据来源

数据下载:https://download.csdn.net/download/qq_35809147/11176115

二、代码解析
import pandas as pd
import matplotlib as mpl
from pandas import DataFrame, Series
import matplotlib.pyplot as plt

columns = ['Direction', 'HouseType', 'Floor', 'Conarea', 'UnitPrice', 'Decoration', 'TotalPrice','XiaoQu','QuYu', 'BuildingYear', 'IsLift', 'PropertyNature', 'ResidentialType','BuildingStructure','ArchitecturalType', 'ListingTime']
data = pd.read_excel(u'C://Users/liulei/Desktop/爬取的原始数据.xlsx', na_values=" null")
data.columns = columns
data.head()

二手房数据的分析与挖掘(二)-- 数据处理

data.isnull().sum()

二手房数据的分析与挖掘(二)-- 数据处理

#由于建筑结构和建筑类型缺失值太多,并且由经验得知房屋价格和这两个属性的关系不大,所以删除它们和挂牌时间。
columns = ['Direction', 'HouseType', 'Floor', 'Conarea', 'UnitPrice', 'Decoration', 'TotalPrice','XiaoQu','QuYu', 'BuildingYear', 'IsLift', 'PropertyNature', 'ResidentialType']
source_data = data[columns]

source_data = source_data.dropna()
sum(source_data.isnull().sum())

二手房数据的分析与挖掘(二)-- 数据处理

source_data.info()

二手房数据的分析与挖掘(二)-- 数据处理

year_convert = lambda x : str(x).strip()[:-2]
source_data.BuildingYear= source_data.BuildingYear.apply(year_convert)

def strip_convert(x):
    return x.strip()

source_data.Direction = source_data.Direction.apply(strip_convert)
source_data.HouseType = source_data.HouseType.apply(strip_convert)
source_data.Floor = source_data.Floor.apply(strip_convert)
source_data.Decoration = source_data.Decoration.apply(strip_convert)
source_data.XiaoQu = source_data.XiaoQu.apply(strip_convert)
source_data.QuYu = source_data.QuYu.apply(strip_convert)
source_data.IsLift = source_data.IsLift.apply(strip_convert)
source_data.PropertyNature = source_data.PropertyNature.apply(strip_convert)
source_data.ResidentialType = source_data.ResidentialType.apply(strip_convert)

source_data.head()

二手房数据的分析与挖掘(二)-- 数据处理

%matplotlib inline

plt.rcParams["font.sans-serif"] = ["SimHei"]#用来显示正常中文标签
plt.rcParams["axes.unicode_minus"] = False#用来正常显示负号
plt.rcParams['figure.figsize']=(10,9)
fig, axes = plt.subplots(1, 2)
fig.subplots_adjust(wspace=0.5)
source_data.boxplot(column="TotalPrice", ax=axes[0])
source_data.boxplot(column="UnitPrice", ax=axes[1])
plt.show()

二手房数据的分析与挖掘(二)-- 数据处理

#由图可得, 接下来将总价大于1000万的归为异常值,小于1000万的归为正常值,
abnormal_data = source_data[source_data.TotalPrice > 1000]
normal_data = source_data[source_data.TotalPrice <= 1000]
abnormal_data.index = range(len(abnormal_data))
normal_data.index = range(len(normal_data))
abnormal_data.to_excel(u"d://异常值数据.xlsx", index=False)
normal_data.to_excel(u"d://正常值数据.xlsx", index=False)

normal_data.shape

二手房数据的分析与挖掘(二)-- 数据处理

#将正常值数据随机划分成训练集和测试集
test_data = normal_data.sample(500)
train_data = normal_data.ix[normal_data.index.drop(test_data.index)]
test_data.index = range(len(test_data))
train_data.index = range(len(train_data))
test_data.head()

二手房数据的分析与挖掘(二)-- 数据处理

train_data.head()

二手房数据的分析与挖掘(二)-- 数据处理

test_data.to_excel(u'd://测试数据.xlsx', index = False)
train_data.to_excel(u'd://训练数据.xlsx', index = False)
三、处理结果数据下载:

异常值数据:https://download.csdn.net/download/qq_35809147/11177340
正常值数据:https://download.csdn.net/download/qq_35809147/11176627
测试数据:https://download.csdn.net/download/qq_35809147/11177349
训练数据:https://download.csdn.net/download/qq_35809147/11177347

欢迎加入大数据学习交流群,一起交流学习!

二手房数据的分析与挖掘(二)-- 数据处理