课程基本信息
课题
数据整理
教科书
书名:信息技术必修1数据与计算
出版社:人民教育出版社&中国地图出版社
出版日期:2019年6月
学生信息
姓名
学校
班级
学号
课后练习
上节课同学们通过调查问卷的形式采集了身边同学们的课余时间安排数据,这些数据是否是存在问题?请将采集到的数据进行数据整理,去除无效、错误、重复数据,并对数据进行标准化处理。(请参考学习资料中的示例,了解Python编程实现筛选数据、去重、删除数据的基本方法。)(共45张PPT)
数据整理(第二十三课时)
回顾
数据处理一般过程
数据采集
数据整理
数据分析
数据呈现
数据保存
数据采集到的数据,是怎样保存的呢?
常见的数据保存形式是云存储、数据库、文件。
文件格式
文件格式保存,最常见的是txt、csv格式。
csv文件也是一种保存了数据的文本文件,其中的数据通常以英文逗号分隔开。excel、wps等表格软件可以兼容打开该格式的文件。
观察数据
上图是学生体质健康数据的部分原始数据,观察该数据存在什么问题。
原始数据可能存在的问题
缺失
数据为空
错误
数据不准确
重复
重复的数据
非标准
数据单位
格式不一致
“脏数据”
1、数据整理的目的
问题数据
清洁数据
有效
数据
完整性
准确性
统一性
提取价值
2、数据整理的方法
补漏
避免缺失
勘误
标准化、异常值修正
去重
删除重复
删除重复
3、数据整理
金山银山不如绿水青山,最近这些年,国家落实严控环境污染、修复生态环境等政策。随着环境改善,你家乡的空气质量情况是否有所改善?我们需要数据来帮助判断。
每小时采集的空气质量原始数据
金山银山不如绿水青山,最近这些年,国家落实严控环境污染、修复生态环境等政策。随着环境改善,你家乡的空气质量情况是否有所改善?我们需要数据来帮助判断。
每小时采集的空气质量原始数据
金山银山不如绿水青山,最近这些年,国家落实严控环境污染、修复生态环境等政策。随着环境改善,你家乡的空气质量情况是否有所改善?我们需要数据来帮助判断。
活动1:观察数据
请暂停视频,下载资源包中的文件。
打开
原始数据.csv。
观察数据表中的数据,思考是否存在什么问题。
原始数据.csv
观察数据——重复
存在重复值——需要去重
观察数据——筛选
存在太多数据——需要筛选
观察数据——非标准化
日期格式不正确——需要数据标准化
观察数据——缺失
存在数据缺失——需要尽可能补缺
空气质量数据整理需求
1、存在重复数据!——去重
2、数据太多了,我们只需要某个城市数据!——筛选
3、日期格式不正确!——标准化
4、现有缺失数据!——尽可能补缺
Pandas库介绍
Pandas库是数据分析和整理常用的一个第三方库。
包含现成方法读写多种文件格式数据。
能够高效操作大型数据集。
非常擅长处理类似于表格类型的数据。
Pandas库介绍
Pandas库有两个常用的主要数据结构
Series——这是一串数据组成的集合
DataFrame——这是一个表格型的数据结构
Pandas库——DataFrame结构
行索引号
列索引号
列数据
从0开始
活动2:空气质量数据去重
暂停视频
请下载
课堂活动(去重).py
文件
和
原始数据.csv
放在同目录下。
活动2:空气质量数据去重
目标——删除重复数据
打开下载的程序文件
活动2:空气质量数据去重
删除重复数据用三句代码实现
A.data.to_csv(savename,index=False)——保存文件
B.df=pd.read_csv(file,encoding='utf-8',header=0)——读取文件
C.data=df.drop_duplicates(keep='first')——删除重复数据
正确的顺序是
B
C
A
活动2:空气质量数据去重
df=pd.read_csv(file,encoding='utf-8',header=0)
data=df.drop_duplicates(keep='first')
data.to_csv(savename,index=False)
请大家参考老师提供的代码,将缺失的代码补全,然后运行,看看去重后的效果吧!
读取文件
删除重复
另存文件
活动2:空气质量数据去重
活动3:空气质量数据筛选
目标——筛选数据
现在数据太多了,我需要筛选某个城市的数据!
例如
筛选北京的数据。
DataFrame筛选用法
DataFrame筛选数据
df[列索引]筛选某列的数据
df['北京']筛选红色区域数据
DataFrame筛选用法
DataFrame筛选数据
df[列索引列表]筛选多列数据
df[
['date','北京']
]筛选两列数据
DataFrame筛选用法
DataFrame筛选数据
更多筛选、定位数据的方法
请参考学习资料包中的阅读材料
DataFrame筛选数据
更多筛选、定位数据的方法
请参考学习资料包中的阅读材料
活动3:空气质量数据筛选
暂停视频
请下载
课堂活动(筛选).py
文件
和
STEP1_删除重复数据.csv
放在同目录下。
活动3:空气质量数据筛选
筛选出date、hour、type、北京
这四列数据
活动3:空气质量数据筛选
读取文件
筛选数据
另存文件
活动3:空气质量数据筛选
df=pd.read_csv(file,encoding='utf-8',header=0)
data=df[
['date','hour','type',city]
]
data.to_csv(savename,index=False)
请大家参考老师提供的代码,将缺失的代码补全,然后运行。
看看筛选后的效果吧!
读取文件
筛选数据
另存文件
运行效果
活动4:空气质量数据标准化处理
暂停视频
请下载
课堂活动(标准化).py
文件
和
STEP2_筛选后数据.csv
放在同目录下。
活动4:空气质量数据标准化处理
目标——数据标准化(日期标准化)
日期格式应该是2020-10-01的形式。我们需要对这一列数据处理。
活动4:空气质量数据标准化处理
20150521
2015
05
21
用-拼接
2015-05-21
datestr
datestr[0:4]
datestr[4:6]
datestr[6:8]
datestr[0:4]
+
'-'
+
datestr[4:6]
+
'-'
+
datestr[6:8]
课堂活动:STEP3
标准化
读取文件
循环拼接
另存文件
读取文件
循环拼接
另存文件
活动4:空气质量数据标准化处理
暂停视频
请运行
课堂活动(标准化).py
文件
运行结束,观察新生成的数据文件
运行效果
活动5:空气质量数据补缺
暂停视频
请下载
课堂活动(补缺).py
文件
和
STEP3_日期标准化后数据.csv
放在同目录下。
活动5:空气质量数据补缺
目标——补全缺失数据
对于未发布数据,无法补全。
对于偶发性缺失数据,可以补全。
方法很多,比如线性插值法、均值插值、临近值补缺。
这些属于高等数学、线性代数的内容,请课下了解。
活动5:空气质量数据补缺
目标——数据补缺
打开
课堂活动(补缺).py
自定义函数supplyData实现了补缺。
修改city为指定的城市名称。
(注意一定和csv文件中的城市名一致)。
运行程序,体验下补缺过程。
运行效果
数据整理活动小结
我们通过课堂体验活动,体验了删除重复数据、筛选数据、标准化数据、补全缺失值的整理过程。其实数据整理除了编程工具还有多种工具可以使用,如表格软件、在线数据分析平台等。选择Python编程工具来做数据整理有哪些优势呢?
编程可灵活实现使用者的需求
4、课堂小结
数据整理
整理目的
整理方法
问题数据
去重
勘误
补漏
重复数据
非标准化数据
错误数据
缺失数据
5、课后作业
上节课同学们通过调查问卷的形式采集了身边同学们的课余时间安排数据,这些数据是否是存在问题?请将采集到的数据进行数据整理,去除无效、错误、重复数据,并对数据进行标准化处理。
请参考学习资料中的示例
了解Python编程实现筛选数据、去重、删除数据的基本方法。自主学习任务单
学习指南
课题名称:数据整理
学习目标:
掌握数据整理的基本方法,能够根据需求选择适当的工具整理数据。
本节知识点思维导图:
学习任务
任务1:请暂停视频,下载资源包中的文件。
打开
原始数据.csv。观察数据表中的数据,思考是否存在什么问题。
【思考】表中数据存在的问题有
任务2:【删除重复数据】请下载
课堂活动(去重).py
文件
,和
原始数据.csv
放在同目录下。观察自己所在城市或地区在
原始数据.csv中的名称。使用编辑器打开程序,按照自己所在城市名称修改变量city的值。(注意一定和
原始数据.csv中的名称一致。)
参考以下代码补全
课堂活动(去重).py
文件中缺失的部分,然后运行程序,观察生成的结果文件
STEP1_删除重复数据.csv。
df=pd.read_csv(file,encoding='utf-8',header=0)#读取文件
data=df.drop_duplicates(keep='first')#删除重复
data.to_csv(savename,index=False)#保存文件
【思考】本任务,我们实现了对数据的整理是
。
任务3:
【筛选数据】我们的需求是从几百个城市的数据中找到自己所在城市的数据,所以我们需要筛选数据出来。例如,筛选北京的数据。下载
课堂活动(筛选).py
文件,和
STEP1_删除重复数据.csv放在同一目录下。请大家参考以下代码,将缺失的代码补全,然后运行。看看筛选后的数据文件STEP2_筛选后数据.csv。
df=pd.read_csv(file,encoding='utf-8',header=0)
data=df[
['date','hour','type',city]
]
data.to_csv(savename,index=False)
【思考】本任务,我们实现了对数据的整理是
。
任务4:【数据标准化】原始数据的第一列日期,不是标准yyyy-mm-dd格式。这一步我们完成数据标准化的操作。请下载
课堂活动(标准化).py这个文件。注意,要和STEP2_筛选后数据.csv放在同目录。运行程序,观察整理后生成的数据文件STEP3_日期标准化后数据.csv。
【思考】本任务,我们实现了对数据的整理是
。
任务5:【数据补全】数据存在缺失,这一步我们采用一定方法进行数据补全。(请感兴趣的同学课下通过网络了解线性插值法、均值插值、临近值补缺的补缺思路。)下载
课堂活动(补缺).py文件,注意和
STEP3_日期标准化后数据.csv
放在同目录下。运行程序,观察整理后生成的数据文件STEP4_数据补缺.csv。
【思考】本任务,我们实现了对数据的整理操作是
。
评测反思
知识小测:结合微课资源,完成以下题目:
通常采集的数据存在
、
、
、
和
的问题。数据整理的过程就是通过
删除重复数据、
通过
纠正非标准化或错误数据、通过
补全缺失数据的过程。
学习评价:
评价指标评价等级及分值优秀
9-10分良好
5-8分一般
3-4分
自评老师评任务1(10%)任务2(20%)任务3(20%)任务4(20%)任务5(20%)任务单
(10%)
学习反思:
通过本节课的学习,你最大的收获是什么?
在实践操作环节,遇到了哪些困难?你是如何解决的?
关于本节课的学习内容,列出你最想进一步研究的内容。课程基本信息
课题
数据整理
教科书
书名:信息技术必修1数据与计算
出版社:人民教育出版社&中国地图出版社
出版日期:2019年6月
教学目标
教学目标:掌握数据整理的基本方法,能够根据需求选择适当的工具整理数据。教学重点:数据整理的目的和方法。教学难点:数据整理的方法。
教学过程
时间
教学环节
主要师生活动
1分钟20分钟1分钟1分钟
课堂引入新课讲授课堂小结课后作业
1、课堂引入教师:通过之前课程的学习,我们了解到数据处理一般过程是数据采集、数据整理、数据分析、数据呈现四个过程。那么为什么数据采集到的数据要进行数据整理?让我们通过今天的学习找到答案。2、数据整理的目的教师:请同学们仔细观察这部分学生体质健康原始数据,观察下这份数据是否存在问题。教师:我们通过观察会发现这张表格中的数据存在重复、空缺、数据单位不正确的问题。其实这也是很多采集来的数据普遍存在的问题。教师:通常采集的原始数据都会或多或少存在缺失、错误、重复、非标准化的问题。这样的数据我们形象地称之为脏数据。我们如果想从数据中心提取出数据的价值,首先得确保数据是有效的数据。什么样的数据是有效的?具有完整性、统一性、准确性的数据。那么存在问题的数据我们就需要通过数据整理将至转变为清洁数据,也就是有效数据。这也是我们数据整理的目的。教师:怎样才可以将问题数据处理成清洁数据呢?我们要通过去重来删除重复数据、通过补漏来补全缺失数据,通过勘误来纠正数据中的错误和非标准化问题。数据整理的方法教师:我们了解了脏数据存在数据重复、缺失、错误和非标准化的问题,那么就可以对应采取去重、补漏、勘误的方法来清洗数据。这也数据整理的基本方法。数据整理教师:下面,我们通过课堂活动过来体验一下数据整理的过程。金山银山不如绿水青山、我们国家这些年一直致力于环境治理、生态修复,也落实了很多政策、关停了很多污染企业。随着环境的治理,你所在的城市空气质量是否也随着治理改善了呢?我们要做出判断,需要数据的支撑。这里,老师提供了一份全国三百多个城市地区的空气质量采集数据。这张表中的AQI就是空气质量指数。通过这个指数,我们可以直观判断空气质量。表中的数据是每小时采集一次的空气质量数据。3.1活动1:观察数据教师:下面,请大家暂停视频,下载资源包中的
原始数据.csv文件。请观察表中的数据,这份采集数据是否存在问题?能否直接使用呢?请大家仔细观察。3.1.1观察数据(重复)教师:嗯,我猜想各位同学已经或多或少发现了一些问题。观察仔细的同学可能已经发现了,数据中存在一些重复的数据,比如23点的数据存在两次。3.1.2观察数据(筛选)教师:这份表格里,并且包含367个城市或地区6年的空气质量数据,并且是每小时采集一次的数据,所以有四五万条数据,数据量很大。我们只需要一个城市的数据,所以需要筛选出一个城市的数据,去掉冗余的数据。3.1.3观察(非标准化)教师:数据中第一列的日期格式不规范。不是常见的标准日期格式。我们需要做数据标准化。3.1.4观察数据(缺失)教师:眼尖的同学,可能还会发现这些数据中还存在空缺的情况,有的是连续数据中缺了一个两个,有的是大段日期的数据不存在。为什么?偶然性出现的缺失可能是采集设备存在故障或线路问题导致的。前期大量数据缺失是由于前期未公布该城市的数据。所以采集到的数据并不完整。教师:我们一起回顾下这份原始的数据存在哪些问题:1、数据中存在重复数据,需要去重。2、数据量太多,我们只需要自己所在的城市的数据,所以需要筛选3、第一列日期格式不对,需要标准化。4、存在缺失数据。需要补缺。下面我们一起通过数据整理来解决这四个问题。3.2pandas库介绍教师:在完成数据整理之前,我们来介绍一下使用的工具。今天,我们会用到一个叫做PANDAS的第三方库,这也是一个数据分析和整理过程常用到的库。这个库包含了很多现成的读写多种文件格式的方法;pandas能够高效操作大型的数据集。间接得说,它处理大量数据能力又快又好。另外,pandas库非常擅长处理的数据结构就是类似于表格这样行列组成的数据,也是我们数据处理最常见的数据结构。教师:pandas库包含两个常用的主要数据结构。series结构,这个是一串数据组成的集合,可以简单理解为一个队列,一个一维的字典。DataFrame结构,这是一个表格型的数据结构,也就是由行和列组成。教师:今天我们主要用到了DataFrame结构,我们主要介绍下这个结构。DataFrame结构由三部分组成,行索引号(类似于excel表格里的行号),列索引号(类似于excel表格里的列标题),另外还有列数据,也就是一列包含的数据集合。这里需要强调下,DataFrame的行索引号是从0开始,我们这张图是wps表格显示的,行索引号是从1开始,这一点不一样哦。下面我们就在数据整理过程中进一步了解DataFrame结构的具体用法。3.3活动2——空气质量数据去重教师:请大家打开资源包,下载课堂活动(去重).py
文件,和
原始数据.csv
放在同一目录下。打开
课堂活动.(去重).py
文件教师:我们的目标是删除重复数据,那么这个功能用代码怎么实现呢?请大家打开刚才下载的程序文件。我们看到这里有三句代码,第一句,是导入pandas库,并起一个别名叫做pd第二句是定义了一个变量,也就是我们要处理的文件名称,这里就是同目录下的原始数据.csv。第三句是定义了一个变量savename,也就是处理后数据另存的文件名称。我们可以看到注释里请大家补全代码实现对数据的去重操作。补全什么代码呢?我们接着看。教师:其实利用pandas实现去重,只需要三句代码即可实现。下面就是三句代码。但是他们的顺序不对。我们一起来看看正确的顺序是什么。A句,这一句中的DATA变量就是一个DataFrame表,使用to_csv方法,将数据表的数据保存到指定的文件里,第一个参数savename是保存的文件名称,第二个参数index=False说明,保存时不要保存现有DateFrame表的索引。B句,这一句是调用pandas的读取csv的方法,也就是read_csv方法,第一个参数file指定的文件名称,参数encoding是指采用utf-8数据编码来读取,header=0表示读取时将第1行的数据当做列索引号。也就是作为表格的列标题。C句,这一句是使用DateFrame的drop_duplicates方法直接将表格中的重复数据删除,然后再保存到data变量里。这里的keep=first是指重复的数据中保留第一行,多余的重复数据删除。这三句的代码作用,相信大家已经理解了。那么这三句的正确排序是什么?我想,大家都有了自己的答案。正确的答案是BCA。你对了嘛?教师:去重的过程就是读取文件、删除重复数据、另存为新文件三个步骤。下面,请大家参考老师提供的代码,将
课堂活动(去重).py文件缺失的代码补全,然后运行,看看去重后的效果吧!学生:尝试参考任务单,实现删除重复删除数据的函数。3.4活动3——空气质量数据筛选教师:我们的需求是从几百个城市的数据中找到自己所在城市的数据,所以我们需要筛选数据出来。例如,老师要筛选北京的数据。教师:DataFrame筛选数据有几种方式。如果筛选某列数据,可以直接df[列索引]筛选某列的数据,如图所示,如果想筛选北京这一列的数据,df['北京']筛选红色区域所示的数据。教师:如果想筛选多列,那么就用多列的索引号组成列表,然后作为参数来筛选即可。例如筛选date和北京这两列数据。df[
['date','北京']
]筛选两列数据。教师:DataFrame还有很多丰富的筛选数据的方法。感兴趣的同学可参考资料包中的阅读材料了解。教师:下面,我们一起体验下数据筛选的过程。请大家打开资源包,下载
课堂活动(筛选).py
文件,和
STEP1_删除重复数据.csv放在同一目录下。现有的数据,我们需要筛选出自己所要城市的数据,比如我需要筛选出前三列
date\hour\type和北京,一共四列的数据。教师:那么用python编程实现,是怎样实现筛选的呢?其实我们理顺思路,会发现,筛选的过程就是读取文件、筛选数据、将数据另存文件三个步骤。让我们打开
课堂活动2(筛选).py
,一起看看。这里定义了三个变量,file是处理的文件,save那么是处理后保存的文件,city是要筛选出的城市名称。但是筛选数据的代码需要大家补全。教师:补全的过程,依然是用3句代码来实现。第一句,读取文件,这句和之前相同,不多加解释。第二句,筛选数据,用到了刚才老师介绍的筛选多列的方法。我们用列索引号组成的列表作为参数,筛选出这四列的数据。注意,city变量在代码中已定义了,就是北京。需要修改为自己所在城市的同学,请在代码中自行修改。第三句,将筛选的数据保存为新文件。也不多加解释了。下面,请大家参考老师给出的三句代码,将
活动2的代码补全,然后运行,看看筛选后的效果吧!学生:补全代码,体验筛选数据的过程。3.1.5活动4——空气质量数据标准化处理教师:下面,我们一起完成数据标准化的体验。请大家下载
课堂活动(标准化).py这个文件。注意,要和STEP2_筛选后数据.csv放在同目录。因为我们需要调用上一步生成的结果文件哦。教师:数据中的第一列日期格式不符合日期标准,我们需要将其处理为年-月-日的形式。教师:那么怎样把一个字符串形式的日期转化为-间隔的标准格式呢?我们一起分析一下,其实20150521这个日期可以分割为年2015、月05、日21三部分,然后我们用-把他们拼接起来,那么就生成了2015-05-21这样的日期格式。本质上,这就是一个将字符串分隔、拼接的过程。假如20150521放在一个变量datestr中,这个字符串变量的前四位截取出来就是2015,中间2位截取出来就是05,最后两位截取出来就是21。最后,我们将至和“-”拼接起来。就实现了这个日期的标准化。教师:标准化的整体思路就是读取文件、将日期循环拼接处理好,将处理好的数据另存新文件。让我们一起来看看代码是怎样实现的吧!开始,读取文件。然后筛选出date这列的数据。然后,用到了我们熟悉的for循环。循环拼接需要处理的字符串,处理完将数据存入到指定单元格中。最后保存数据到一个文件。教师:下面,请暂停视频,下载的课堂活动(标准化).py文件,运行程序,观察新生成的数据文件。学生:运行程序,观察结果文件。3.1.6活动5——空气质量数据补缺教师:下面,我们开始第四步,对已经标准化的数据进行最后补缺的操作。请大家暂停视频,下载
课堂活动(补缺).py文件,注意一定和上一步生成的文件
STEP3_日期标准化后数据.csv
放在同目录下。教师:转换时间的代码语句也已经封装为一个函数changeDate函数。请大家在调用changeDate函数的第三步,将#删除,然后运行。教师:这一步,我们的目标是补全缺失的数据。注意,对于未发布的数据,我们是无法补全的,如果需要补全,需要人工去找到缺失的数据。这不在我们的讨论范围内。今天,我们只对偶发性的数据进行自动补全。运用数学方法自动补全数据,有很多成熟的方法,比如线性插值法、均值插值法、临近值补缺等。这些方法涉及到高等数学、统计数学中的知识。请感兴趣的同学课后参考资料或者上网学习相关的知识。教师:请大家打开下载的
课堂活动(补缺).py文件。这个文件中,我们依然使用pandas库来实现数据的自动补缺。这个文件中,老师定义了一个自定义函数supplyData实现了对某一列数据的补缺。大家在程序底部,可以看到下面四句代码,分别是定义了处理的文件名、保存的文件名、定义补缺的列、调用补缺函数。请大家根据自己所在的城市或地区,修改city变量,然后运行程序,体验下补缺的过程吧!学生:运行代码,体验数据补缺。3.1.7
数据整理活动小结教师:这节课,我们体验了删除重复数据、筛选数据、标准化数据、补全缺失值的四种数据整理过程。其实,除了使用python编程工具来完成数据整理,我们还有表格软件、在线数据分析平台可以实现数据的整理。那么相比较,编程工具有哪些优势呢?表格软件操作简单,但是可处理的数据
量较小,编程工具具有处理大数据的优势。几十万条甚至几百万条数据处理起来毫不费力。在线数据分析平台操作方便,有很多现成的整理方法,但是我们只能使用平台提供的方法。相比之下,编程工具可以按我们的意愿随心所欲的去整理和分析,具有更灵活的特点。课堂小结教师:我们一起回顾下本节课我们学习过的内容。本节课我们学习了数据整理,对数据进行整理的目的是什么?是因为采集到的数据是问题数据需要整理。什么是问题数据?就是存在重复数据、非标准化数据、错误数据、缺失数据的数据。那么怎样整理数据呢?我们了解了数据整理的方法,那就是去重(删除重复数据),勘误(纠正非标准化数据、错误数据),补漏(补全缺失数据)。5、课后作业教师:最后,请大家完成课后作业。上节课我们已经通过调查问卷形式采集到了身边同学们在课余时间安排的数据。那么这些数据是否存在问题?请将采集到的数据进行整理,去除无效、错误、重复的数据,将数据标准化处理。请大家参考本节课的代码以及学习资料中的示例,通过python编程完成课后作业。学生:参考学习资料,完成课后作业的数据处理。