《第三部分 必修1数据处理与应用知识点公开课.docx》由会员分享,可在线阅读,更多相关《第三部分 必修1数据处理与应用知识点公开课.docx(8页珍藏版)》请在第一文库网上搜索。
1、第三部分数据处理与应用一、数据整理1 .数据整理的目的:检测和修正错漏的数据、整合数据资源、规整数据格式、提高数据质量。2 .常见的数据问题(1)数据缺失问题:最简单的处理方法是忽略含有缺失值的实例或属性,还可以采用平均值、中间值或概率统计值来填充缺失值。(2)数据重复问题:会导致数据冗余,浪费存储空间和网络带宽,误导用户数据分析。重复数据的处理方法是在进一步审核的基础上进行合并或删除等处理。(3)异常数据问题:不符合一般规律的数据对象。它可能是要去掉的噪声,也可能是含有重要信息的数据对象。比如某篮球比赛中某人的篮板统计为35,这个数字异常,但可能是真的。(4)逻辑错误问题:数据属性值与实际值
2、不符,或违背业务规则或逻辑。如:2月30日(5)格式不一致问题:对于不同来源的数据中存在格式不一致的情况,可根据后续分析和挖掘的需要进行数据转换。二、常用表格数据处理(以EXCeI为例)1单元格的引用:单元格单元格区域不连续的单元格区域列号行号B50起始单元格:结束单元格B51:C53区域1,区域2,区域3,B5kB53,D51:D542 .数据计算算术运算符:举例:+-/a=20-B6=D3*D4=D620选中要进行计算的单元格,输入以“二”开头的公式。右图在C2中输入“二B2*2,计算结果为60o函数举例:SUM(参数1参数2,)AVERAGE(参数1,参数2,)MAX(参数1参数2,)M
3、IN(参数1参数2,)注:参数可以是数字、单元格或单元格区域=SUM(A1:A6)求A1:A6区域内所有数据的和=AVERAGE(A1:A6)求A1A6区域内所有数据的平均值3 .数据填充公式不仅用于计算,更重要的是构建计算模型,然后用自动填充完成批量数据计算。绝对引用对数据填充的作用列号行号B2自动填充后公式中引用的单元格相对改变列号$行号B$2纵向填充后公式中引用的单元格不变,横向步充会变$列号行号$B2横向填充后引用的单元格不变,纵向填充会变$列号$行号$B$2自动填充后公式中引用的单元格都不变4.图表呈现BC门口产业产值(亿元)同比增长%2第一产业47003.57.153第二产业319
4、685.348.62第三产业一,国内生产总值290777.444.2365745图表数据区域主要查看“图例”和“坐标”内容。如图中所示,图例显示为列D的标题,横坐标显示为列A的内容,故该图表的数据区域为A1:A4,D1:D4三、大数据处理1 .处理大数据时,一般采用分治思想,分布式计算和并行处理是大数据处理的主要方法。2 .分布式计算:是把一个需要非常巨大的计算能力才能解决的问题分成许多小部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。3 .大数据类型(1)静态数据:在处理时已经收集完成、在计算时不会发生改变的数据。(2)流数据:不间断地、持续地到达的实
5、时数据,需要进行实时计算与分析。(3)图数据:图就是一些数据和关联这些数据的联系的集合,如社交网络,道路交通等。4 .大数据处理类型(1)对静态数据的批处理计算(HadoOp、Spark)Hadoop是面向大规模的批处理,适用于处理静态数据,主要包括分布式文件系统HDFS、分布式数据库HBase、分布式并行计算模型MaPRedUCe等多个模块。HDFS:将大规模海量的静态数据以文件的形式、用多个副本保存在不同的存储节点(服务器)中,并用分布式系统进行管理。云盘、网盘的底层运用就是HDFS。HBase:列式数据库,主要用来存储非结构化数据和半结构化数据,可管理PB级大数据。MapReduce:将
6、任务分解并发到多个节点(服务器)上,使用Map函数在节点服务器进行计算处理,然后由Reduce函数归纳计算结果并输出。(2)对流数据的实时计算(StonHeron)流计算可以简单、高效、可靠地实现实时数据的获取、传输和存储。典型应用Twitter(3)对图数据的图计算(PregeKGraphX)(4)实时处理与批处理的整合(Hadp+Storm)在同一个平台既可以做批处理,也可以做流计算,还可以进行两种模式的混合使用。平台的整合缩短了批处理与流处理之间的切换延时时间,减少系统的开销,降低使用成本。四、大数据处理编程处理数据1.pandas是Python的第三方模块,提供了Series和Data
7、Frame两种数据结构。pandas模块主要用于数据的整理、计算、统计、分析和简单可视化。引入PandaS模块的方法:importpandasaspd2.pandas的SerieS对象:一维数据结构,常用属性有index(索引)和Va1UeS(值)S1=Pd.SeriesQ166,178,180J)#创建SerieS对象时指定索引print(s1),s2=pd.Series(U66,178,18OJ,index=sO1*sO2YSo3)送行结果一Y左列:ifcx)print(s2)运行结果:I3_J右列:VaIUCS)s11662180r)s02178dtype:int64s03180dtyp
8、e:int64foriinsi.index:foriinsi.va1ues:foriinsi:print(i)print(i)print(i)运行结果:O运行结果:166运行结果:16611781782180180(1)通过索引可以选取SerieS对象中的值。如:s10的值为166,s2ps021的值为178(2)通过赋值语句可以修改SerieS对象中的值。如:执行s10=168和s2psO=168两条语句,可将si、s2中的“166”改为“168”。3.pandas的DataFrame对象:二维数据结构,属性有index、co1umns(列标题)和VahIeSdata2=姓名:王静怡张佳妮李
9、臣武性别:女女,男,借阅次数”:2&56,37df2=pd.DataFrameCdata2)壶给姓名性别借阅次数IPrint(df2)Q主静梏女28一1室桂黑女566二李臣一勇37k(snexz)(va1uesforiindf1.index:print(i)运行结果:012foriindf1.co1umns:print(i)运行结果:姓名性别借阅次数foriindf1.va1ues:print(i)运行结果:王舒怡女28张佳妮女56李臣武男37print(df1.T)#转置行、列运行结果:012姓名王静怡张佳妮李臣武性别女女男借阅次数285637(1)Pandas可以读取EXCe1数据,也可以
10、读取CSV数据,代码如下图1234A考场B座位C姓名D性别程序代码,importpandasaspdxdf=pd.read_exce1(,test.x1sx,)Print(Xdf)弋运行结果I考场座位姓名性别0126李晓楠女1714张子锐男2232陈笑女126李晓楠女714张r锐男232陈笑女(2)检索得到相应的数据读取CSV文件使用readcsv选取列数据:df.姓名可以得到df对象中“姓名”列数据,也可以写成df?姓名选取行数据:dfdf.性别=男得到df对象中“性别”列的数据等于“男”的数据行选取单个数据:df.at1j姓名可以得到df第2行“姓名”列的数据(3)修改数据df.借阅次数=
11、30,52,68将df对象的“借阅次数”列的数据进行修改(1.3狂1,性别=男将行索引为“1”、列标题为“性别”的数据改为“男”(3)DataFrame常用函数函数名描述count()非空数据项的数量,如df.姓名.count。,统计姓名列的数据个数sum()mean()求和、示平均值,如df.成绩.sum(),对df的“成绩”列的数据求和InaX()、min()最大、最小值describe0各列的计数、平均数、最大值、最小值等基本统计值head(n),tai1(n)前n行、后n行的数据记录。如df.head(3),表示df的前3行数据groupby()数据分组。如df.groupby(班级”
12、),表示df的数据按“班级”分组如g=df.groupby(性别,as_index=Fa1se).SUm()表示按性别分组后对各列数据进行求和,as_index=Fa1se表示分组求和后显示新索引sort_va1ues()排序,ascending=True或不写表示升序,Hscending=Fa1se表示降序如t=df.Sort_va1ues(年龄,ascending=Fa1se)表示按年龄降序排序dropO删除数据,默认删除行,axis=1时删除行,axis=0时删除列a=df.drop(0)删除df的第1行数据b=df.dropC规格axis=1)删除df的规格列数据append()在结尾
13、追加数据行,ignore_index=True对追加的数据设置索引df1=df.append(,name,Tom,gender*ma1e,age,31),ignore_index=TnIe)4.InatP1Ot1ib模块绘图matp1ot1ib是一个绘国库,其中的PyP1ot子库提供的快速绘图函数。函数名描述figure()创建一个新的图表对象,并设置为当绘图对象p1ot()绘图,默认绘制线形图bar()绘制垂直柱形图barh()绘制水平柱形图(即条形图)scatter()绘制散点图tit1e0设置图表的标题x1im()y1im()设置X轴、y轴的取值范围x1abe1(),y1abe1()设置
14、X轴、y轴的标题名称1egend()显示图例show()显示创建的所有绘图对象绘图程序示例:importnumpyasnpMUnPy为与数组有关的模块importmatp1ot1ib.pyp1otaspit#使用P1t作为InatP1Ot1ib的绘图函数#产生一个0到10,分为1000等份的数组#y的值为sin(x)026810x=np.Iinspace(0,10,1000)y=np.Sin(X)pit.figure(figsize=(8,4)pit.tit1e(sin(x)t)#绘制线形图#设定X轴坐标范围为。到10#设定y轴坐标范围为-1.5到1.5#显示图例,图例名称为Sin(X)#展示图像pit.p1ot(x,y)pit.x1im(0y10)pit.y1i(-1.5,1.5)pit.1egend(1abe1=sin(x),)pit.show()五、大数据处理文本数