什么是 pandas?

pandas 是针对 Python 编程语言进行数据操作和数据分析的热门软件库。

pandas 概述

pandas 是基于 Python 构建的用于数据操作和数据分析的软件库。pandas 库提供各种数据结构,专门用于通过简化的 Python API 来处理表格数据集。pandas 是对 Python 的扩展,可用于处理和操作表格数据,从而高效对数据集执行加载、对齐、合并和转换等操作。

作为一个数据分析工具,pandas 之所以受到欢迎,主要得益于它的多功能性和高效的性能。“pandas”的名称源自术语“panel data”,用于描述包含多个时间段观察结果的数据集,强调其专注于处理现实世界数据集的多样化数据结构。

pandas Python API 支持表格、矩阵和时间序列等结构化数据格式,提供各种工具来处理杂乱或原始数据集,将其整理为简明的结构化格式,以便进行分析。为提高性能,会在后端源代码中使用 C 或 Cython 来执行计算密集型操作。pandas 库本质上不支持多线程,这限制了其利用现代化多核平台的能力,并且无法高效处理大量数据。但是,Python 生态系统中的新库和扩展程序有助于打破这一限制。

pandas 库可与更广泛的 Python 数据分析生态系统内的其他科学工具相集成。

pandas 的工作原理

pandas 开源库的核心是用于处理表格和统计数据的 DataFrame 数据结构。pandas DataFrame 为二维数组式数据表,其中每列代表特定变量值,每行包含一组与这些变量对应的值。DataFrame 中存储的数据可包括数字、类别或文本等类型,以便 pandas 操作和处理多样性数据集。

pandas 支持导入和导出 CSV、SQL 和电子表格等各种文件格式的数据集。这些操作与其数据操作功能相结合,有助于 pandas 清理、调整并分析表格和统计数据。

从根本上说,DataFrame 是 pandas 的主干,可帮助用户高效管理和分析结构化数据集 — 从导入和导出原始数据,到执行用于机器学习等的高级数据操作任务。

DataFrame

pandas 支持导入和导出各种不同格式的表格数据,如 CSV、SQL 和电子表格文件。

导入和导出表格数据

pandas 还支持各种数据处理操作和数据清洗功能,包括选择子集、创建衍生列、排序、联接、填充、替换、汇总统计和绘图。

数据操作:排序
数据操作:联接
数据操作:汇总统计和绘图

Python 软件包索引(Python 编程语言软件库)的编制者表示,pandas 非常适合处理多种数据,包括:

  • 包含异构类型列的表格数据,如 SQL 表或电子表格。
  • 有序和无序(不一定为固定频率)时间序列数据。
  • 具有行和列标签的任意矩阵数据(同构类型或异构类型)。
  • 任何其他形式的观测/统计数据集。实际上,数据完全无需进行标记即可纳入 pandas 数据结构。

pandas 具有哪些优势?

pandas 库为数据科学家和开发者带来了诸多优势,因此成为进行数据分析和操作的重要工具。主要优势包括:

  • 处理缺失数据 (NaN):无论数据是否为数字,pandas 都可简化对包含缺失数据的数据集的处理(称为 NaN)。
  • GroupBy 功能:pandas 提供高效的 GroupBy 操作,以便用户执行拆分-应用-组合工作流,从而进行数据聚合和转换。
  • DataFrame 大小易变性:可以在 DataFrame 和更高维度的数据结构中添加或移除列。
  • 自动显式数据对齐:pandas 通过将 Series 和 DataFrame 等对象与其标签自动对齐来确保数据对齐,从而简化计算。
  • 全面的文档:简化的 API 和全面记档功能降低了 pandas 的学习难度。简短的教程和代码示例有助于新用户快速开始进行编码。
  • I/O 工具:pandas 支持导入和导出各种格式的数据,如 CSV、Excel、SQL 和 HDF5。
  • 可视化就绪型数据集:pandas 具有直观的可视化效果,可以直接用 DataFrame 对象进行绘制。
  • 灵活重塑和透视:pandas 将数据集的重塑和透视简化为单次函数调用,使其进一步为分析或可视化做好准备。
  • 分层轴索引:pandas 支持分层索引,允许用户在单一 DataFrame 中管理多级数据结构。
  • 时间序列功能:pandas 具有多种时间序列分析功能,提供用于日期范围生成、频率转换、移动窗口计算和滞后分析的工具。

pandas 有哪些真实应用?

PyPi 下载统计数据表明,pandas 已成为数据科学家和分析师的热门工具,能够高效处理各行各业的数据集。其数据分析和操作功能使其成为解决实际问题的首选工具。

  1. SQL 集成与数据分析
    pandas 集成了 SQL 数据库,以便用户直接在 pandas Python API 中读取和写入 SQL 表。通过将数据直接导入 DataFrame,用户可以利用 pandas 进行数据分析,同时维护 SQL 以查询和管理数据集。
  2. 可视化和洞察
    pandas 能够清洗、筛选和转换表格数据,确保数据集为纳入 Matplotlib 和 Seaborn 等高级图表和绘图库做好准备。例如,pandas 可以处理缺失数据并将带有时间戳的时序数据重新格式化,以获得有益的趋势和洞察。
  3. 时序分析
    pandas 拥有许多时序功能,可执行分析股价、天气模式和物联网传感器读数等任务。其功能包括日期范围生成、频率转换和针对时间数据集的高级重塑操作。
  4. 复杂的数据操作
    使用 pandas,可以轻松执行合并、联接或拼接多个 DataFrame 等任务。concat 方法与 pandas append 等工具配合使用,可以将不同的数据源组合在一起。该库还提供用于聚合和转换数据的 GroupBy 功能,可支持先进的拆分-应用-合并技术。
  5. 表格数据转换
    pandas 可通过重塑、透视和分层索引等功能来简化表格数据转换。例如,用户可重塑数据集来分析不同地区的销售业绩,或透视表格以更深入地了解客户行为。
  6. 处理缺失数据
    管理缺失数据是 pandas 的核心优势之一。用户可以直接在 DataFrame 中填充、插入或删除 NaN 值,创建清晰完整的数据集,以便进行分析或将其集成到机器学习工作流。

Python 和 Pandas

由于 pandas 基于 Python 编程语言而构建,因此有必要了解为什么 Python 是一个如此强大的数据科学和分析工具。

自 1991 年推出以来,Python 编程日渐受到欢迎,成为 Web 开发、数据分析和机器学习的热门语言。其语法简单易读,便于初学者与高级用户集中精力解决问题,而避开低级语言的复杂性。由 pandas、NumPy、Matplotlib 和 Jupyter 等库和工具构成的庞大生态系统进一步提高了这种易用性。

pandas API 利用 Python 的这些优势,为数据操作和分析提供了可靠功能。用于字符串操作的 str 方法等函数以及对自定义 lambda 函数的支持,使用户能够直接在其工作流中写入清晰直观的算法。由于 Python 兼容 NumPy 等其他库,因此可以将数值计算与 pandas 的数据处理功能相集成。

Python 的生态系统使其能够通过 API 包装器与外部系统和服务进行交互。因此,无论是在本地系统还是基于云的环境中,都可更加轻松地将 pandas 集成到更大规模的数据工作流中。在可视化方面,Matplotlib 等库与 pandas 相辅相成,实现了清晰有效的数据图形表示。

Python 和 pandas 的官方文档提供全面的指南和代码示例,对学习该语言及其库大有裨益。这些资源与 Jupyter Notebook 等交互式工具相结合,使 Python 成为开发和测试数据驱动式算法的热门选择。

Python 将 Python 编程的灵活性、pandas 和 NumPy 等库的强大功能以及 Matplotlib 等可视化工具融为一体,提供了一个高度集成的环境,以便轻松应对复杂的数据挑战。

GPU 加速如何增强 pandas DataFrame?

传统 CPU 针对顺序串行处理进行了优化,而 GPU 则采用大规模并行架构,其中包含数千个专为同时处理多项任务而设计的微型核心。由于具有这种并行处理能力,在处理大量数据以及执行计算密集型任务方面,GPU 的速度远超 CPU。其高效率和较低的每 FLOP 成本(性价比)颠覆了计算密集型工作负载处理,在数据科学和机器学习领域尤其如此。

CPU 与 GPU 的区别

对于数据科学任务,例如处理 pandas DataFrame 或对大型数据集执行 DataFrame 操作,GPU 加速具有明显优势。通常在 CPU 上运行的 pandas 等传统工具现在可进行优化,以通过 NVIDIA 的 cuDF 库充分发挥 GPU 的强大优势,而无需更改任何代码。作为 NVIDIA RAPIDS™ 数据科学平台的一部分,cuDF 是一个 GPU DataFrame 库,可提供与 pandas 类似的 API 来加载、筛选和操作数据。早期版本的 cuDF 仅适用于 GPU 开发工作流。借助 cuDF,相比于 CPU,数据科学家可将 GPU 性能提升 50 倍,而无需更改任何 pandas 代码。

数据科学家希望在数据增长到千兆级以及性能下降时能够继续使用 pandas,NVIDIA cuDF 专为满足这一需求而打造。cuDF 进行 pandas 加速时,如果可能,将在 GPU 上执行操作,否则在 CPU 上执行(使用 pandas)。cuDF 会根据需要在后台对 GPU 与 CPU 进行同步。这提供了统一的 CPU/GPU 体验,从而帮助 pandas 工作流实现优异的性能。这种设计确保熟悉 pandas DataFrame 工作流的用户无需更改代码即可过渡到 GPU 加速计算。

通过对数据集清洗、转换和分析等数据准备任务启用基于 GPU 的处理,cuDF 显著减少了运行时瓶颈。由于集成了 scikit-learn 等机器学习工具,并支持多 GPU 和多节点部署,用户能够处理更大规模的数据集并进行高效扩展。这种功能改变了传统 ETL 工作流,使加速从 DataFrame 操作到机器学习甚至深度学习等工作流成为可能。

数据准备、模型训练和可视化

如何开始使用加速版 pandas?

安装 NVIDIA RAPIDS

要开始使用加速版 pandas,需要首先安装 NVIDIA RAPIDS。请参阅 RAPIDS 安装指南中的安装文档,安装 cuDF 以及您的架构所需项。

安装 pandas

安装合适的 NVIDIA RAPIDS 库后,需要安装 pandas。可以使用 pip 或 conda 安装 pandas,如下所示:

pip install pandas 或 conda install -c conda-forge pandas

开始使用 iPython 或 Jupyter 进行编码

如果使用的是 iPython 解释器或在 Jupyter Notebook 中进行编码,请在导入 pandas 之前添加以下代码行:

%%load_ext cudf.pandas
import pandas as pd

开始使用 Python 进行编码

如果使用的是标准 Python 解释器,请在导入 pandas 之前添加以下代码行:

import cudf.pandas
cudf.pandas.install()
import pandas as pd

后续步骤

了解如何开始使用 RAPIDS

了解如何使用 RAPIDS cuDF 加速 pandas,并将 GPU 加速无缝集成到数据科学工作流中。

深入了解 RAPIDS cuDF

访问 NVIDIA 技术博客,详细了解 RAPIDS cuDF 如何加速 pandas。

观看 pandas 加速视频和演示

观看视频和 cuDF 开启/关闭演示,了解 RAPIDS 如何加速 pandas。

Select Location
Middle East