Pandas是一个Python包,提供快速、灵活和富有表现力的数据结构。它的宗旨是使处理“关系”或“标记”数据变得简单和直观。它的目标是成为Python中进行数据分析的首选构件。此外,它还有一个更为宏大的目标:成为在任何编程语言中都可用的最强大、最灵活的开源数据分析/操作工具。它已经在朝着这个目标稳步前进。
Pandas适用于多种不同类型的数据
-
包含不同数据类型列的表格数据,例如SQL表格和Excel电子表格中的数据;
-
有序和无序(不要求频率固定)时间序列数据;
-
具有行和列标签的任意矩阵数据(同质或异构类型均可);
-
任何其他形式的观察/统计数据集。这些数据可以不经过标记就放置到panda数据结构中。
Pandas擅长处理的任务
- 方便处理浮点和非浮点数据中的缺失数据(用NaN表示);
- 大小可变:可以在DataFrame和更高维度的对象中插入和删除列;
- 自动和显式地数据对齐:可以显式地将对象对齐到一组标签上;或者可以简单地忽略这些标签,让Series、DataFrame等在计算中自动对齐数据;
- 强大、灵活的group by功能,可以对数据集执行“分割-应用-结合”操作,用于聚合和转换数据;
- 简化将其他Python和NumPy数据结构中不规则的、不同索引的数据转换为DataFrame对象的过程;
- 基于智能标签的切片、花式索引和构建大型数据集的子集;
- 对数据集进行直观的合并和连接操作;
- 对数据集进行reshape和转置操作;
- 坐标轴的层次标签(每个刻度可能有多个标签)
- 强大的IO工具,用于从平面文件(CSV和delimited)、Excel文件、数据库中加载数据,以及从超快的HDF5格式文件中保存/加载数据
- 针对时间序列的特定功能:生成日期范围、转换日期频率,移动统计窗口,移动窗口线性回归,日期移动和滞后,等等。
这里的许多原则是为了解决使用其他语言/科研环境时经常遇到的缺点。对数据科学家来说,处理数据通常分为多个阶段:对数据进行分析和清理、分析/建模,然后将分析结果组织成适合绘图或表格显示的形式。对于这些任务,panda都是理想的工具。
Pandas中的数据结构
Pandas的两个主要数据结构:Series(一维)和DataFrame(二维),可以处理金融、统计、社会科学和许多工程领域的绝大多数典型用例。对于R语言用户,DataFrame提供了R语言中的data.frame提供的所有内容,甚至更多。pandas构建在NumPy之上,目的是与许多其他第三方库很好地集成在科学计算环境中。
| 包含的维数 | 名称 | 简述 |
| 1 | Series | 一维有标记的同质类型数组 |
| 2 | DataFrame | 二维有标签的,大小可变的表格数据,允许列之间数据类型不同 |
为什么是多种数据类型?
理解pandas数据结构的最佳方法是将其作为低维数据的灵活容器。例如,DataFrame是Series的容器,而Series是标量数据的容器。这样能够以类似于操作字典的方式从这些容器中插入和删除对象。
另外,设计者希望通用API函数具有合理的默认行为,该行为应考虑时间序列和横截面数据集的典型方向。 当使用ndarrays来存储二维和三维数据时,考虑数据集的方向对编写函数的用户是一个负担。 不同的轴应当被认为是等效的(C或Fortran连续性对性能至关重要时除外)。 在pandas中,轴旨在为数据赋予更多的语义含义。 即,对于特定的数据集,可能有一种“正确”的方式来定向数据(横向或者纵向)。 因此,使用多种数据类型也是为了减少编写下游函数时,花费在数据转换中的精力。
例如,对于表格数据(DataFrame),从语义上考虑索引(行)和列比考虑轴0和轴1更有帮助。因此,遍历DataFrame的列会得到更具可读性的代码:
for col in df.columns:
series = df[col]
# do something with series
数据可变性和复制
所有的pandas数据结构都是值可变的(它们包含的值可以改变),但并不总是大小可变的。Series的长度不能更改,但是可以将列插入到DataFrame中。 此外,绝大多数方法都会产生新对象,从而保持输入数据不变。
其他说明
- Pandas运行速度尚可。使用Cython代码对许多低级算法位进行了泛化调整。然而,泛化通常会牺牲性能。因此,如果编写代码时非常看重应用程序的某一个功能的性能,需要手动创建一个更快的专门工具。
- pandas依赖于statsmodels,这使得它成为Python中统计计算生态系统的重要组成部分。
- pandas目前已经广泛应用于生产和金融应用。
Pandas是一款强大的Python包,专为高效、灵活地处理复杂数据设计。它提供了一维的Series和二维的DataFrame数据结构,能处理各种类型的数据,如SQL表格、时间序列和统计数据集。Pandas支持缺失数据处理、数据对齐、groupby操作等功能,并拥有强大的IO工具,适用于数据科学的各个阶段。
3700

被折叠的 条评论
为什么被折叠?



