pandas简介
一、前言
最近用spark学习机器学习算法,学习到关联规则APriori算法时(https://www.cnblogs.com/1113127139aaa/p/9926507.html)发现,算法是用python实现的,算法中需要进行On2的遍历,但当数据集过大(例如我们使用的TPC-H的lineitem表有几十G,近百亿条数据)的时候,python使用的将数据集加载为set的方法就难以实现,所以考虑不转换为set,直接用从dataframe中读取出来的数据形式dataframe进行操作,学习中发现spark自带的df操作较少,并且有限制,所以先进行pandas的学习
参考:https://www.jianshu.com/p/aac3153b47eb
https://www.yiibai.com/pandas/python_pandas_data_structures.html
https://www.cnblogs.com/xiaoxuebiye/p/7223774.html
二、Pandas简介
pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法,是使Python成为强大而高效的数据分析环境的重要因素之一。
Pandas是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发team继续开发和维护,属于PyData项目的一部分。Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。 Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。panel data是经济学中关于多维数据集的一个术语,在Pandas中也提供了panel的数据类型。
三、Pandas数据结构
Pandas处理以下三个建立在Numpy数组上的数据结构
- 系列(
Series
) - 数据帧(
DataFrame
) - 面板(
Panel
)
维数和描述
考虑这些数据结构的最好方法是,较高维数据结构是其较低维数据结构的容器。 例如, DataFrame
是Series
的容器,Panel
是DataFrame
的容器。
数据结构 | 维数 | 描述 |
---|---|---|
系列 | 1 | 1D标记均匀数组,大小不变。 |
数据帧 | 2 | 一般2D标记,大小可变的表结构与潜在的异质类型的列。 |
面板 | 3 | 一般3D标记,大小可变数组。 |
(1)系列
系列是具有均匀数据的一维数组结构。例如,以下系列是整数:10
,23
,56
,...
的集合。
关键点
- 均匀数据
- 尺寸大小不变
- 数据的值可变
(2)数据帧
数据帧(DataFrame)是一个具有异构数据的二维数组。 例如,
姓名 | 年龄 | 性别 | 等级 |
---|---|---|---|
Maxsu | 25 | 男 | 4.45 |
Katie | 34 | 女 | 2.78 |
Vina | 46 | 女 | 3.9 |
Lia | 女 | x女 | 4.6 |
上表表示具有整体绩效评级组织的销售团队的数据。数据以行和列表示。每列表示一个属性,每行代表一个人。
列的数据类型
上面数据帧中四列的数据类型如下:
列 | 类型 |
---|---|
姓名 | 字符串 |
年龄 | 整数 |
性别 | 字符串 |
等级 | 浮点型 |
关键点
- 异构数据
- 大小可变
- 数据可变
(3)面板
面板是具有异构数据的三维数据结构。在图形表示中很难表示面板。但是一个面板可以说明为DataFrame
的容器。
关键点
- 异构数据
- 大小可变
- 数据可变