大数据基础 课件 单元5 数据采集与预处理_第1页
大数据基础 课件 单元5 数据采集与预处理_第2页
大数据基础 课件 单元5 数据采集与预处理_第3页
大数据基础 课件 单元5 数据采集与预处理_第4页
大数据基础 课件 单元5 数据采集与预处理_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《大数据基础》.移动商务营销课程群5.1.1数据采集原理5.1数据采集5.1.2BeautifulSoup网络

数据采集与预处理数据采集大数据基础Unit5

为什么需要数据采集特征:随着人类活动的扩展,数据规模在急剧膨胀,数据类型也越来越多。需求:数据需要以简单的方式进行处理,又要十分准确且能迅速满足各种类型的数据需求。挑战:在大量分散的、异构的数据中收集需要的数据,以相对统一的方式存储。这也就是数据采集的任务。5.1.1数据采集原理系统日志采集工具很多互联网企业都有数据采集工具,多用于系统日志采集,如Flume,Kafka,Chukwa等,这些工具均采用分布式架构,能满足每秒数百MB的日志数据采集和传输需求。

5.1.1数据采集原理系统日志采集工具——FlumeFlume是一种分布式、可靠和可用的服务,用于高效地收集、聚合和移动大量日志数据。比如,将日志数据从各种网站服务器上汇集起来存储到HDFS、HBase等集中存储器中。

5.1.1数据采集原理

网络数据采集工具需求:通过网络爬虫和一些网站平台提供的公共API等方式从网站上获取数据。方法:将非结构化数据和半结构化数据的网页数据从网页中提取出来。并将其提取、清洗、转换成结构化的数据,将其存储为统一的本地文件数据。工具:用于网页爬虫的ApacheNutch、Scrapy等框架,另外有诸如BeautifulSoup、urllib、requests等底层工具包。5.1.1数据采集原理

网络数据采集流程5.1.1数据采集原理《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群《大数据基础》.移动商务营销课程群5.1.1数据采集原理5.1数据采集5.1.2BeautifulSoup网络

数据采集与预处理数据采集大数据基础Unit5

BeautifulSoup简介BeautifulSoup提供一些简单的、Python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。Anaconda已经安装了BeautifulSoup包,程序中导入包就可以直接使用。frombs4importBeautifulSoup5.1.2BeautifulSoup网络数据采集

获取网页内容

网页的原始内容可以使用requests包的get方法获取,在设置了编码之后就能获得html文本。而解析html文本的结构,获取指定的元素标签内容,这部分工作则可以通过BeautifulSoup实现。

下例获取百度首页内容importrequests#导入requests包res=requests.get('')#获取网页内容res.encoding='utf-8'#设置编码格式html=res.text#获取网页文本print(html)5.1.2BeautifulSoup网络数据采集

练习材料说明

为例便于讲解BeautifulSoup包的功能,本节不使用真实网页数据进行练习,而是使用以下html文本,文本存放在test_html.txt中。html="""<html><head><title>TheDormouse'sstory</title></head><body><pclass="title"name="dromouse"><b>TheDormouse'sstory</b></p><pclass="story">Thereweretwolittlesisters;andtheirnameswere<ahref="/elsie"class="sister"id="link1">Elsie</a>and<ahref="/lacie"class="sister"id="link2">Lacie</a>.</p><pclass="story">...</p>"""5.1.2BeautifulSoup网络数据采集

创建BeautifulSoup对象

使用html.parser解析html文本内容,创建BeautifulSoup对象。frombs4importBeautifulSoupsoup=BeautifulSoup(html,'html.parser')5.1.2BeautifulSoup网络数据采集

根据标签名查找BeautifulSoup提供的select方法可以根据CSS选择器查找元素标签。查找结果存放在列表中,列表的每一个元素为匹配的元素标签,如果要访问标签可以使用列表的下标引用。

直接传递标签名给select方法,可以查找所有标签名相符的元素。soup.select('a')#查找所有a标签,结果为标签列表5.1.2BeautifulSoup网络数据采集

根据class或id查找

传递’.<class>’参数时,BeautifulSoup根据class属性进行查找;传递’#<id>’参数时,BeautifulSoup根据id属性进行查找。soup.select('.sister')5.1.2BeautifulSoup网络数据采集soup.select('#linke1')

根据上下级关系查找当查找条件之间用空格分隔时,以普通上下级关系进行查找;当查找条件之间以空格大于号空格分隔时,以直接上下级关系进行查找。soup.select('body#link1')5.1.2BeautifulSoup网络数据采集soup.select('p>a')

获取标签的内容

经过查找得到元素标签列表后,使用下标或迭代可以取出标签。然后可以进一步访问标签的内容,如文本、链接等。soup.select('a')[0]5.1.2BeautifulSoup网络数据采集>>>soup.select('a')[0].text#获取文本'Elsie‘>>>soup.select('a')[0]['href']#获取链接'/elsie'《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群《大数据基础》.移动商务营销课程群5.2.1数据预处理原理5.2数据预处理5.2.2Pandas数据预处理与预处理数据采集大数据基础Unit5

数据预处理的意义与方法5.2.1数据预处理原理原始数据不一致重复不完整含噪声高维度数据预处理方法数据清洗数据集成数据变换数据归约

数据清洗5.2.1数据预处理原理干净数据填充空值、丢失值消除异常数据平滑噪声数据去掉数据中的噪音纠正不一致的数据

数据集成5.2.1数据预处理原理模式匹配整合不同数据源中的元数据。数据冗余数据中存在的直接冗余和间接冗余。数据值冲突对于一个现实世界实体,其来自不同数据源的属性值或许不同。

数据变换5.2.1数据预处理原理光滑去除数据中的噪声聚集对数据进行汇总或聚集数据泛化使用概念分层,用高层概念替换低层或“原始”数据规范化将属性数据按比例缩放,使之落入一个小的特定区间属性构造可以构造新的属性并添加到属性集中,以帮助挖掘过程

数据规约5.2.1数据预处理原理特征归约从原有的特征中删除不重要或不相关的特征,或者通过对特征进行重组来减少特征的个数。样本归约从数据集中选出一个有代表性的样本的子集,从而减少成本、加快速度、拓宽范围、甚至提高精度。征值归约特将连续型特征的值离散化,使之成为少量的区间,每个区间映射到一个离散符号。《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群《大数据基础》.移动商务营销课程群5.2.1数据预处理原理5.2数据预处理5.2.2Pandas数据预处理与预处理数据采集大数据基础Unit5

Pandas简介Pandas是Python的一个数据分析包,Pandas中引入了两种新的数据结构:一维数组类型Series、二维表格类型DataFrame。Anaconda已经为我们安装好了Pandas,使用的时候只需要直接import就可以了。导入命令:importpandasaspd#导入pandas,并取个别名pd5.2.2Pandas数据预处理

练习用数据文件商品编号名称产地进价售价30101苹果新疆5630101苹果新疆5625211书包6010030102水晶梨浙江45.5商品编号名称产地进价售价30132凤梨广东7913704滑板车上海150200商品编号库存301011002521130301028030132401370415商品信息1.xlsx商品信息2.xlsx商品信息3.xlsx5.2.2Pandas数据预处理

读取数据文件Pandas提供了读取Excel文件的方法read_excel,参数中传递文件路径即可读取文件内容,并返回DataFrame类型的二维数据。

在数据文件存放路径新建程序文件data_preprocessing.py,在程序文件中添加以下代码读取数据。importpandasaspditem1=pd.read_excel('商品信息1.xlsx')item2=pd.read_excel('商品信息2.xlsx')item3=pd.read_excel('商品信息3.xlsx')print(item1)5.2.2Pandas数据预处理

重复值处理item1的前两行内容重复,可以使用Pandas的drop_duplicates方法去除重复项。item_drop_dup=item1.drop_duplicates()print(item_drop_dup)5.2.2Pandas数据预处理

删除缺失值item_drop_dup的第2行的产地列部分内容缺失,Pandas提供了直接删除缺失行/列的方法,使用dropna方法去除缺失项。item_dropna=item_drop_dup.dropna(axis=1)#axis=1表示删除列,0表示删除行print(item_dropna)5.2.2Pandas数据预处理

填充缺失值item_drop_dup的第2行的产地列部分内容缺失,除了dropna方法,还可以使用fillna方法填充缺失值,如下例直接填充固定值。item_fillna=item_drop_dup.fillna('未知')print(item_fillna)5.2.2Pandas数据预处理

字段抽取

商品编号中包含了商品品类信息,如30101的前3个字段表示品类。下面从item_drop_dup的商品编号截取字段,添加品类项。item_no=item_drop_dup['商品编号'].astype(str)#astype转换数据类型为stritem_drop_dup['品类']=item_no.str.slice(0,3)#截取前三个字段5.2.2Pandas数据预处理

记录抽取item_fillna数据中有多种商品信息,可以通过条件筛选取得进价在5元以上的商品信息。item_filter=item_fillna[item_fillna['进价']>=5]print(item_filter)5.2.2Pandas数据预处理《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群《大数据基础》.移动商务营销课程群5.2.1数据预处理原理5.2数据预处理5.2.2Pandas数据预处理与预处理数据采集大数据基础Unit5

按值排序item_fillna数据中有多种商品信息分布无序,可以通过排序进行重新整理。item_sorted=item_fillna.sort_values(by='进价',ascending=False)#by使用指定列的值进行排序,ascending指定排序方向5.2.2Pandas数据预处理

记录合并item_fillna和item2两组数据有不同商品信息,可以进行合并处理。item_concat=pd.concat([item_fillna,item2])#合并两组商品信息print(item_concat)5.2.2Pandas数据预处理

字段匹配合并item_concat和item3两组数据有不同的列属性,可以进行合并处理。item_merge=pd.merge(left=item_concat,right=item3,

left_on='商品编号',right_on='商品编号')5.2.2Pandas数据预处理

简单计算item_merge中的进价和库存,可以简单计算求得总成本。item_merge['总成本']=item_merge['进价']*item_merge['库存']print(item_merge)5.2.2Pandas数据预处理

数据标准化item_merge不同商品的库存,可以进行标准化处理。标准化是指将数据按照比例缩放,使之落入特定的区间,一般使用0-1标准化。公式如:X=(x-min)/(max-min)max_,min_=item_merge['库存'].max(),item_merge['库存'].min()item_scaled=(item_merge['库存']-min_)/(max_-min_)#标准化fororigin,scaledinzip(item_merge['库存'],item_scaled):print('{:>3d}->{:<5.2f}'.format(origin,scaled))#对比显示5.2.2Pandas数据预处理

数据分组item_merge中库存可以按段进行划分,即数据分组。数据分组:根据数据分析对象的特征,按照一定的数据指标,把数据划分为不同的区间来进行研究,以揭示其内在的联系和规律性。bins=[0,40,80,1000]#切分区间lbl=['少','正常','多']#[0-40)为少,[40-80)为正常,[80-1000)为多item_cut=pd.cut(item_merge['库存'],bins,right=False,labels=lbl)fororigin,cutinzip(item_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论