内容正文:
专题七 大数据处理与应用
思维导图
一、大数据处理的基本思想与架构
1.大数据处理的基本思想
大数据处理的基本思想是分治思想。分治,就是把一个复杂的问题分成两个或更多相同或相似的子问题,找到求这几个子问题的解法后,再找出合适的方法把它们组合成求整个问题的解法。如果这些子问题还难以解决,可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。
归纳提炼
2.大数据处理类型和架构
数据类型和特征 处理方式和架构 应用场景
静态数据:大容量静态数据集 批处理计算
(Hadoop、Spark等) 适合处理对时间要求不高的非常大规模数据集
流数据:不间断地、持续地到达的实时数据 流计算
(Storm、Heron等) 对通过系统传输的每个数据项执行操作。比如根据交通路况实时更新导航线路
图数据:由数十亿的节点和数千亿的边组成的错综复杂的数据形式 图计算
(Pregel、GraphX等) 如社交网络、道路交通、传染病的传播路径等
二、利用pandas模块处理数据
1.Python数据处理常用的扩展模块有:
numpy Python中做科学计算的基础库,主要提供科学计算中常用的随机数、数组运算等基础函数
scipy 基于numpy构建的一个模块,增强了在高等数学、信号处理、图像处理、统计等方面的处理能力
pandas 基于numpy实现,主要用于数据的处理和分析。它提供了大量处理数据的函数和方法,能方便地操作大型数据集
matplotlib 用以绘制二维图形的Python模块
2.Series(系列)
(1)Series是一种一维的数据结构,包含一个数组的数据和一个与数据关联的索引(index)。
(2)Series对象的常用属性
属性 说明
index Series的下标索引,其值默认是从0起递增的整数,也可以指定索引内容,如index=["a","b","c"]
values 存放Series值的一个数组
①创建Series对象
import pandas as pd
a=["王小明",175,18]
s1=pd.Series(a)
■也可以表示为:
import pandas as pd
s1=pd.Series(["王小明",175,18])
输出s1对象如下图所示:
0 王小明
1 175
2 18
■还可以指定索引
import pandas as pd
a=["王小明",175,18]
s2=pd.Series(a,index=["姓名","身高","年龄"])
输出s2对象如下图所示:
姓名 王小明
身高 175
年龄 18
②修改s2对象中的身高为180
s2[1]=180 或 s2["身高"]=180
3.DataFrame(数据框)
(1)DataFrame是一种二维的数据结构,由1个索引列(index)和若干个数据列组成,每个数据列可以是不同的类型。DataFrame可以看作是共享同一个index的Series的集合。
(2)DataFrame对象常用属性
属性 说明
index DataFrame的行索引
columns 存放各列的列标题
values 存放值的二维数据
T 行列转置
(3)创建DataFrame对象的方法
①用一个相等长度的列表或字典来创建。
import pandas as pd
data1={"姓名":["王小明","李思怡","汤世光"],"性别":["男","女",
"男"],"年龄":[18,16,20]}
df1=pd.DataFrame(data1,columns=["姓名","年龄","性别"])
#columns用于设定df1对象中数据列的顺序,默认生成从0起递增的索引列
输出df1对象如下图所示:
姓名 年龄 性别
0 王小明 18 男
1 李思怡 16 女
2 汤世光 20 男
②读取二维数据文件创建。
使用read_excel()函数,读取Excel文件或csv文件创建DataFrame对象,也可以使用to_excel()函数,创建Excel文件保存数据。
import pandas as pd
df2=pd.read_excel("test.xlsx")
df3=pd.read_csv("test.csv")
③检索DataFrame对象的数据列
■属性检索列:如print(df1.姓名)。
■字典记法检索列:如print(df1["姓名"])。
④检索行
■检索df1对象中所有的男学生:print(df1[df1["性别"]=="男"])或print(df1[df1.性别=="男"])。
■检索df1对象中年龄超过16岁的学生:print(df1[df1["年龄"]>16])或print(d