3 个 Pandas 数据清理和准备技巧

在本文中,我们将介绍有效清理和准备数据的三个基本 Pandas 技巧:声明性方法链接、通过分类和向量化字符串访问器进行内存和速度优化,以及使用 .transform() 进行组感知插补。

来源:KDnuggets

简介

数据清理和准备工作预计占据数据科学家日常工作流程的 80%。由于 Pandas 是 Python 中的标准数据操作库,因此操作效率直接决定了从原始、脏数据集到模型就绪功能的速度。想要增加清洁和准备时间是有充分理由的:它直接转化为可用于建模、分析和交流见解的更多时间。

然而,许多开发人员编写的 Pandas 代码模仿标准 Python 循环结构或使用命令式状态突变更新。这些方法存在几个问题:它们可能会触发令人困惑的SettingWithCopyWarning、冗余副本导致RAM 使用量膨胀,以及避免矢量化而降低执行速度。

要编写生产级数据管道,您需要从基本语法过渡到惯用的 Pandas 设计模式。在本文中,我们将介绍有效清理和准备数据的三个基本 Pandas 技巧:

  • 声明性方法链接
  • 通过分类和向量化字符串访问器优化内存和速度
  • 使用.transform() 进行群组感知插补
  • 1. 声明式方法链与.assign()、.query() 和.pipe()

    准备数据时,通常会执行一系列修改:清理字符串值、创建新的数学列、过滤异常值、重命名字段等。

    一种简单的方法是按顺序写入这些操作,就地改变 DataFrame 或重复将其重新分配给同一变量。这不仅使代码难以阅读和调试,而且修改切片 DataFrame 也会经常触发臭名昭著的SettingWithCopyWarning。这个警告是 Pandas 告诉你它不能保证你修改的是内存中的副本还是原始数组缓冲区。

    输出:

    通过将表达式包裹在 ( ... ) 中,Python 允许多行链而不使用反斜杠。

    合并输出:

    总结