Pandas学习笔记:pandas包概述

Pandas是一款强大的Python包,专为高效、灵活地处理复杂数据设计。它提供了一维的Series和二维的DataFrame数据结构,能处理各种类型的数据,如SQL表格、时间序列和统计数据集。Pandas支持缺失数据处理、数据对齐、groupby操作等功能,并拥有强大的IO工具,适用于数据科学的各个阶段。

Pandas是一个Python包,提供快速、灵活和富有表现力的数据结构。它的宗旨是使处理关系标记数据变得简单和直观。它的目标是成为Python中进行数据分析的首选构件。此外,它还有一个更为宏大的目标:成为在任何编程语言中都可用的最强大、最灵活的开源数据分析/操作工具。它已经在朝着这个目标稳步前进。

Pandas适用于多种不同类型的数据

  1. 包含不同数据类型列的表格数据,例如SQL表格和Excel电子表格中的数据;

  2. 有序和无序(不要求频率固定)时间序列数据;

  3. 具有行和列标签的任意矩阵数据(同质或异构类型均可)

  4. 任何其他形式的观察/统计数据集。这些数据可以不经过标记就放置到panda数据结构中。

Pandas擅长处理的任务

  1. 方便处理浮点和非浮点数据中的缺失数据(NaN表示);
  2. 大小可变:可以在DataFrame和更高维度的对象中插入和删除列;
  3. 自动和显式地数据对齐:可以显式地将对象对齐到一组标签上;或者可以简单地忽略这些标签,让SeriesDataFrame等在计算中自动对齐数据
  4. 强大、灵活的group by功能,可以对数据集执行“分割-应用-结合”操作,用于聚合和转换数据;
  5. 简化将其他PythonNumPy数据结构中不规则的、不同索引的数据转换为DataFrame对象的过程;
  6. 基于智能标签的切片、花式索引和构建大型数据集的子集
  7. 对数据集进行直观的合并和连接操作;
  8. 对数据集进行reshape和转置操作;
  9. 坐标轴的层次标签(每个刻度可能有多个标签)
  10. 强大的IO工具,用于从平面文件(CSV和delimited)Excel文件、数据库中加载数据,以及从超快的HDF5格式文件中保存/加载数据
  11. 针对时间序列的特定功能:生成日期范围、转换日期频率,移动统计窗口,移动窗口线性回归,日期移动和滞后,等等。

这里的许多原则是为了解决使用其他语言/科研环境时经常遇到的缺点。对数据科学家来说,处理数据通常分为多个阶段:对数据进行分析和清理、分析/建模,然后将分析结果组织成适合绘图或表格显示的形式。对于这些任务,panda都是理想的工具。

Pandas中的数据结构

Pandas的两个主要数据结构:Series(一维)DataFrame(二维),可以处理金融、统计、社会科学和许多工程领域的绝大多数典型用例。对于R语言用户,DataFrame提供了R语言中的data.frame提供的所有内容,甚至更多。pandas构建在NumPy之上,目的是与许多其他第三方库很好地集成在科学计算环境中。

包含的维数

名称

简述

1

Series

一维有标记的同质类型数组

2

DataFrame

二维有标签的,大小可变的表格数据,允许列之间数据类型不同

为什么是多种数据类型?

理解pandas数据结构的最佳方法是将其作为低维数据的灵活容器。例如,DataFrameSeries的容器,而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中。 此外,绝大多数方法都会产生新对象,从而保持输入数据不变。

其他说明

  1. Pandas运行速度尚可。使用Cython代码对许多低级算法位进行了泛化调整。然而,泛化通常会牺牲性能。因此,如果编写代码时非常看重应用程序的某一个功能的性能,需要手动创建一个更快的专门工具。
  2. pandas依赖于statsmodels,这使得它成为Python中统计计算生态系统的重要组成部分。
  3. pandas目前已经广泛应用于生产和金融应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值