人民币升值 房价-5g应用流量概念股票

《Python数据分析与应用案例教程》教案 第20课 二手房数据分析与
2023年9月9日发(作者:鞠婧祎)

课题

课时

课二手房数据分析与房价预测需求分析

20

2 90 min )

课时(

知识技能目标

1

能够对案例进行需求分析

2

能根据需求对数据进行不同的预处理,选择合适的可视化图形进行分析和展示,并选择合适 的相关变

教学目标

量进行预测

3Pandas

练习使用处理异常值、重复值、缺失值,离散化连续数据和编码字符型数据等

素质目标

1

)养成分析问题、事前规划的良好习惯

教学重难点

教学重点:对案例进行需求分析

教学难点:使用处理异常值、重复值、缺失值,离散化连续数据和编码字符型数据

Pandas

教学方法 案例分析法、问答法、讨论法、讲授法

教学用具

电脑、投影仪、多媒体课件、教材、

APP

节课:考勤(一问题导入(一传授新知一课堂实践

1

2 min 5 min 28 min 10 min

教学设计

节课:问题导入一传授新知一课堂实践一课堂小结

2

8 min 20 min 12 min 3 min

作业布直

2 min

教学过程 主要教学内容及步骤 设计意图

第一节课

考勤

【教师】使用进行签到

APP

【学生】按照老师要求签到

培养学生的组

纪律性,掌握学 生的

出勤情况

(2 min )

【教师】提出问题

问题导入

我们已经学习了 数据处理的相关知识,那么关于一手房数据分析与 房价预测

python

如何进行需求分析呢?

【学生】思考、举手回答

通过提问的方 法,

了解学生对案 例的

了解程度,进 而引出

新知

5 min

【教师】总结学生的回答,并引入新知,讲解案例需求分析的相关知识

7.1

需求分析

目标分析

7.1.1

传授新知

A

【教师】提出问题

本案例的目标是什么?

>【学生】聆听、思考.主动回答问题

>【教师】总结学生的回答,并讲解新知

本章的目标是根据某房产网站中最新发布的北京_手房数据(共条数据,

1003 000

见图包拈区域、户型、面积、装修、房龄、总价、结构、朝向和

7-1,

28 min

单价等,分析各区二手房数量和均价、二手房面积和总价区间占比、二手房房龄和 均价的相

关性、是否靠近地铁的不同装修二手房均价等,然后预测不同条件下二手 房的房价。

通过教师讲解、

课堂讨论、多媒体

演示等方式,使学

生了解案例的需(详

见教材)并详细讲

求分析,数据解

解各部分表示的内

,重复值处理等

01 H

知识

>【教师】多媒体出示〃最新发布的北京二手房数据.xlsx

文件的内容图片

数据源

数据源为通过网络爬虫爬取的某房产网站中最新发布的北京二手房数据,保存 在〃最

新发布的北京二手房数据文件中。

.Xlsx

7.2

数据预处理

£«•1

开的 其面布扇公式

ACrtK

SVRfi

数据解析

台丽银河湾

通州

R

.

安贞

通苑鲁能

夫施所在所

南音知苑一期丰台箕他东亚印

7

号院水

道或蚀所在

象台能啕升

H

岸公肩马

塔蒙小区杜丹回通州 朝阳

修义 丰台 逋州

中信邦城两限区亦庄开发区耳他亦庄开支区港城

华芳因 马连丰台

通中所 北分丰台层⑴层)年建塔柠/

西城

红连哈包

福辣市园北区

与流北郃新区海淀马

£*8

括才园东里

西

连逗 定东庄 水园

at

龙期小区

H

杜丹园 顺义城

道口

双兴北区

方庄

榔园“、区

小西天

王安国 龙期(尹区)年建塔柠 /

Shwtl

唐宁

one

gog

。新世代

走强网园

心,

桥北里卢海桥

成海寺 马连

41

31

1

I

小【教师】提出问题

数据解析的步骤有哪些?

计【学生】聆听.思考、主动回答问题

计【教师】总结学生的回答并讲解新知

定义函数用于提取年份中的数值,转换为整型后计算房龄

1 dealYear()2022

减去该数值)。

西

西

西西

南北南

面区中,,星(空国)年诸板行/平顶层

79. 7418201855068.975

平米 (共层)年建塔柠 /

59. 0618@20144925% 649低档M(共15

年建板塔结合/

90. 03

平米

142. X

99. 43

平米

65.12

45. 5

平米

72. 59

123. 02

*

96. 57

平米

48. 29

平米

53. 8

平米

77平米

87. 4

平米

118.89

平米

61. 4

137.25

平米

54. 45

51. 23

平米

51.657.

平米

79

平米

5843. 2

平米

平米

96. 04

H

H

H

R

H

K

H

K

房源标签

181990 78,226

46275

层)2014年建板楼52036,456/

卬傍目(共层)年建板柠/平中楼名

6200328328,3

(”昼)年并板樽 /

12201522534,552

低方国(共。层)年建嵌格/平泯柠昼

1989”0123,077

(拄名建板塔结合/

21201332044,084

中穆义(共区)年建板塔结合/平质

23200848939,750

24200043044.528

中横国(共层)年建战柠/平中件层

51976670138, 746

"4I96036868. 402

层)年建板价/

低柠县(共昼)年建/

222000tg1820106, 494

11K20073686% 989

年建板柠 /

顶层(共层)年建塔桂的万/平低柠M

1816875,617

161994634103,258

原由共居)迂建板柠 /平卬横层(共

6200546033,516

6199232559,688

层)年建板接/

中梏M(拄三碑塔移。万/

17M 1998336% 416

10R201135067,830

年建板塔结合/

低方君(井年皆塔特/

23W200540$70, 255喜楞M

(共准)1984年速颗核5找万94,138/

质居出层)年评板价/

6199018843,51992007

建板株/

86089,547

)定义函数用于提取户型中室和厅的信息。在该函数中,首先 创建

2 dealType()

列标签为〃室〃和〃厅〃、值为对象;然后循环使用正则表 达式获取每行

0DataFrame

的数值,将其转换为整型后赋值给对象对应的列。

DataFrame

271

Jr

1S1JT

21

3

I

3

I

2

1

211

Jf 3

2

2

2

将户型中的〃房间〃替换为〃室〃,然后将调用。函数返回的

3 dealType

DataFramejoin

对象通过。函数横向连接到原数据中。

4 lambdadealYear()

将年份中的字符替换为空字符,并使用表达式调用

数。

251

Jf 2

1

5

将面积、总价、单价等信息中的字符替换为空字符,仅保留数值部分,然 后转

211

Jf 3

2I1JT

3I

换为浮点型。

)修改部分列标签,如〃面积〃修改为〃面积(平方米)〃、〃年份〃修改 为〃房

6

龄〃、〃总价〃修改为〃总价(万元)〃、〃单价〃修改为〃单价(元/平方 米)"等。

7

输出面积、房龄、总价、单价、室和厅。

十【教师】按照教材步骤进行程序演示:

21

1

1

1

1

2

1

2

1

1

1

2

1

import pandas as pd

import numpy as np

import pandas as pd

import redf = _excel('.xlsx')

', True) def dealYear(year):

num = yearif type(year) == str*:

num = 2022 - int(year) return num

def dealType(ser):

data

=((len(ser)) dtype='int') amedata,

//

({'厅:

data})for i in :

if ser[i] !=

'车位:

rec = l(r'd+' ser[i]) [i,'int(rec[0]) dfoc[i,

/

']=

]=

int(rec[l])return df

dfdf'.e'

[户型'=[户型房间冒室

df = dealTypedf

户型']))

dfdf'.e'applylambda x: dealYear

[年份'=[年份年建'

x))

dfdfeastype'float'

'面积'=]面积 '平米丁)

dfdfe''astype'float'

[总价'=]总价'

dfdf'.e',', ".e'astype

「单价'=]单价'/'

'float'

df =

({面积,:'面积(平方米)丁年份'房龄丁总价'总价(万元) 冒单

价,:,单价/平方米面积(平方米)丁房龄

1 axis='columns'printdf[]

丁总价(万元)丁单价(元/平方米厂,室,厅]])

(详见教材)

★【学生】观察.记录、理解

十【学生】教师演示完成后,学生按照教材提示和教师演示进行实际操作,并 对比程

序运行结果(详见教材)

A

【教师】巡视课堂记录对学生进行个别指导

7.2.2

异常值处理

*【教师】按照教材进行问题分析并按照步骤进行处理异常值程序演示:

二手房数据的户型列中包含车位信息,不在本次分析的需求中,因此可以看作 异常值,

需要删除。此处,使用布尔型索引选取户型为车位的行,并输出选取的数 据;然后,删除包

含车位的行,并输出删除前、后数据的行数。实现代码如下。

dfl = dfdf

[户型'=='车位]

printfn', dfl)printC len(df))

包含车位的行:删除户型异常值前数据的行数:

df = ()print len(df))

(删除户型异常值后数据的行数:

此外,如果二手房的房龄太大(如超过),该房源的购买价值也不大,需 要删除。此处,使用布尔型索引选取

50

房龄小于年份存在错误)或大于的数据, 并输出选取的房龄数据;然后,删除包含房龄异常值的行,并输出删除前、

0(50

后数据 的行数。实现代码如下。

df2 = df][(df 0) | (df50)print050n: df2)

[房龄「房龄】厂房龄[>('房龄小于或大于的行:

print len(df))

('删除房龄异常值前数据的行数:df = ()

print; len(df))(详见教材)

(删除房龄异常值后数据的行数:

小【学生】观察.记录、理解

小【学生】教师演示完成后,学生按照教材提示和教师演示进行实际操作,并 对比程序运行结果(详见教材)十【教

师】巡视课堂记录,对学生进行个别指导

【学生】聆听、思考、理解、记忆【教师】提出问题

根据学过的知识及异常值的处理办法,请同学讨论尝试进行重复值处理【学生】聆听、思考、讨论、编

写程序 【教师】检查并总结学生程序编写

7.2.3

重复值处理

课堂实践

通过课堂讨论,

加深学生对处理

(10 min)

房产网站中会重复发布相同的房源信息,此时,须将相同的房源数据删除。 此处,检查所

有列都相同的重复值并输出;然后,删除除包含重复值的第一行外 其他包含重复值的行,并输

据重复值的理

出删除前、后数据的行数。实现代码如下。

df3 ated(keep=False)printn df[df3 == True])

('所有列重复的行:

print len(df))df = _duplicates()

('删除重复值前数据的行数:

printC len(df))

删除重复值后数据的行数:

第二节课

【教师】提出问题

通过提问的方 法,

问题导入

我们已经学习了数据重复值,异常值预处理方式,那么缺失值要如何处理呢?

【学生】聆听、思考.回答问题

引导学生主动 思考

激发学生的 学习兴

(8 min)

【教师】总结学生的回答,并引入新知,讲解数据预处理的相关知识

7.2.4

缺失值处理

十【教师】按照教材进行问题分析并按照步骤进行处理缺失值程序演示:

在房源数据中,房龄和房源标签信息存在缺失值,须对其进行处理。此处,将 房龄中包含

缺失值的行删除,并输出删除前、后数据的行数;然后,将房源标签中的 缺失值替换为不近地

铁,并输出后列数据。实现代码如下。

10

print len(df))

(删除房龄缺失值前数据的行数:

df = (subset

'房龄')

print',len(df))

。删除房龄缺失值后数据的行数:

df = ({'

房源标签''不近地铁'})

printn; ; -10:])

('房源标签替换缺失值后的数据:

(详见教材)

十【学生】观察、记录、理解

【学生】教师演示完成后,学生按照教材提示和教师演示进行实际操作,并对 比程序运

传授新知

(20

行结果(详见教材)

>【教师】巡视课堂记录,对学生进行个别指导

通过教师讲解

课堂联系,使学 生了

解异常值, 间信息

处理,预处 理数据保

min)

7.2.5

连续数据离散化

存等的 相关知识

【教师】按照教材进行问题分析并按照步骤进行处理连续数据离散化程序演示: 为了分

析一手房面积和总价的区间信息,须将连续数据离散化,划分成不同的 区间。此处,将面积和

总价划分成不同的区间;然后,将区间的数据添加至嫄数据列 末,并输出离散化后数据的后

5

歹山实现代码如下。

bins = [1, 60, 90, 120, 150, 180, 210, 520]

areajabel = [,60 60 ~ 90 90 ~ 120 120 ~ 150

平方米以下丁 平方米丁 平方米丁

方米丁 平方米冒平方米冒平方米以上']

150 ~ 180180 ~ 210210

df=(list(dfbins, labels=area_label)

['面积区间']]面积(平方米)']),

#面积数据的离散化

bins = [l 200, 400, 600, 800, 1000, 2000 4500]

zz

totalPriceJabel =1200 '’200 ~400 '’400 ~600

万兀以卜 万兀 月兀

' ,600800800 Jj ~ 1000100020002000

万兀丁万兀丁~ 万兀丁万兀以上']

df(list(dfbins, labels=totalPrice_label)

['总价区间']=['总价(力兀),]),

#总价数据的离散化

print(dfjloc[:, -5:])

(详见教材)

>【学生】观察、记录、理解

★【学生】教师演示完成后,学生按照教材提示和教师演示进行实际操作,并对 比程序运

行结果(详见教材)

计【教师】巡视课堂记录,对学生进行个别指导

【学生】聆听、思考、理解、记录

【教师】提出问题,请同学们分小组练习:

字符型数据如何编码呢?

【学生】聆听.结组.思考、讨论、写代码、展示程序代码及运行结果

【教师】聆听并总结学生的回答

[教师】痛翻才进逾分析按照步兼指存!拈懒询码丽:

hiW

字符型数据编码

在使用模型对房价进行预测时,无法使用字符型数据,须对其进行编码。此处, 将所在

区、装修、结构、房源标签和朝向进行编码,然后将数据保存〃最新发布 的北乐一手房数据

一预处理文件中。其中,编码刖须重新设置连续的行索引; 结构编码刖须删除其中包

.xlsx

含暂无数据的行;定义函数用十条、 南、西、北、东北、东南、西南

get_dummies_dirt()

课堂实践

和西北个方位的编码。实现代码如下。

8

通过课堂实训, 使

学生能够了解 更多

关于数据预 处理的

(12 min)

df = _index(drop=True)

df = dfjoin(_dummies(df['^Ti£lK]))

:1

df = (_dummies(df

['装修']))

df = (df[df[)

结构']=='智尢数据

df = (_dummies(df

['结构,]))

df = (_dummies(df

['房源标签']))

def get_dummies_dirt(ser):

知识

dirts =

『东',南,西,‘北丁东北广东南,'西^丁西北']

data = ((len(ser)) dtype='int')#0

/,

创建数值为 的数组

df = ame({'data,data, 'S': data, 'Idata,‘

'''东」匕'

data,'data,data,'data}, index=)

东南:'西南西北'

for i in :

#分割字符串

rec = ser[i].strip().split('')

#遍历每条数据分割后的方位

for dirt in rec:

#如果方位信息包含在中,则该方位列对应的行赋值为

dirts1

if dirt in dirts:

df[dirt][i] = 1

return df

df = (get_dummies_dirt(df

[朝向']))

_excel.xlsx', index=False)

('最新发布的北京—手房数据—预处理

【教师】简要总结本节课的要点

课堂小结

(3

本节课学习了需求分析与数据预处理的相关知识,包括数据解析,缺失值,重复 值,异常

值,连续数据离散化及字符串编码等相关内容,希望大家在课下多加练习, 巩固所学知识。

【学生】总结回顾知识点

总结知识点讥

学生对相关知 识的

印象

min)

【教师】布置课后作业

作业布置

(2

(1)

完成课后〃本章考核的习题。

T

(2 )8

预习第章的内容。

【学生】完成课后任务

通过课后作业

习巩固学到的 知识

提高理论接 收能力

min)

教学反思 这节课整体节奏较好,但学生在课堂练习环节中的表现差距较大。每个学生对于程序的认知和感受

不同,接受能力也不同,教币应因材施教,对于优秀学生应使其在达到基本要求后,向更高层次迈进, 对于后进

生,应打好其基础,努力使其达到基本要求,并通过学生间的互助,让优秀学生带动后进生。

圣保罗散热器-隆利科技股票行情

《Python数据分析与应用案例教程》教案 第20课 二手房数据分析与

更多推荐

通州二手房网