本教程是为那些想要学习pandas的基础知识和各种功能的人准备的。这对从事数据清理和分析工作的人员特别有用。完成本教程后,您将发现自己具有中等专业知识水平,可以从中获得更高的专业知识水平。
学习pandas前您应该对计算机编程术语有基本的了解。对任何一种编程语言都有基本的了解是加分的。pandas库使用了numpy的大多数功能。建议您先阅读有关numpy的教程,然后再继续本教程。
pandas 适用于处理以下类型的数据:
与 sql 或 excel 表类似的,含异构列的表格数据; numpy 数组元素需具有相同的数据类型,因此在内存中的大小相同。 有序和无序(非固定频率)的时间序列数据; 带行列标签的矩阵数据,包括同构或异构型数据; 任意其它形式的观测、统计数据集, 数据转入 pandas 数据结构时不必事先标记。
pandas 的主要数据结构是 series(一维数据)与 dataframe(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数典型用例。对于 r 用户,dataframe 提供了比 r 语言 data.frame 更丰富的功能。pandas 基于 numpy 开发,可以与其它第三方科学计算支持库完美集成。pandas 就像一把万能瑞士军刀,下面仅列出了它的部分优势 :
处理浮点与非浮点数据里的缺失数据,表示为 nan; 大小可变:插入或删除 dataframe 等多维对象的列; 自动、显式数据对齐:显式地将对象与一组标签对齐,也可以忽略标签,在 series、dataframe 计算时自动与数据对齐; 强大、灵活的分组(group by)功能:拆分-应用-组合数据集,聚合、转换数据; 把 python 和 numpy 数据结构里不规则、不同索引的数据轻松地转换为 dataframe 对象; 基于智能标签,对大型数据集进行切片、花式索引、子集分解等操作; 直观地合并(merge)、**连接(join)**数据集; 灵活地重塑(reshape)、**透视(pivot)**数据集; 轴支持结构化标签:一个刻度支持多个标签; 成熟的 io 工具:读取文本文件(csv 等支持分隔符的文件)、excel 文件、数据库等来源的数据,利用超快的 hdf5 格式保存 / 加载数据; 时间序列:支持日期范围生成、频率转换、移动窗口统计、移动窗口线性回归、日期位移等时间序列功能。
这些功能主要是为了解决其它编程语言、科研环境的痛点。处理数据一般分为几个阶段:数据整理与清洗、数据分析与建模、数据可视化与制表,pandas 是处理数据的理想工具。
pandas 速度很快。pandas 的很多底层算法都用 cython 优化过。然而,为了保持通用性,必然要牺牲一些性能,如果专注某一功能,完全可以开发出比 pandas 更快的专用工具。 pandas 是 statsmodels 的依赖项,因此,pandas 也是 python 中统计计算生态系统的重要组成部分。 pandas 已广泛应用于金融领域。
$ pip install pandas $ python -i >>> pandaspd >>> df = pd.() >>> print(df) empty dataframe columns: [] index: []