使用 Pandas 自动化数据清洗过程

Automating Data Cleaning Processes with Pandas

使用 Pandas 自动化数据清洗过程

很少有数据科学项目可以免于清理数据的必要性。数据清理包括准备数据的初始步骤。其具体目的是仅保留数据背后相关的有用信息,无论是用于后续分析、作为人工智能或机器学习模型的输入等等。统一或转换数据类型、处理缺失值、消除由错误测量引起的噪声值以及删除重复项是数据清理阶段中一些典型的过程示例。

正如你可能想到的,数据越复杂,数据清理就可能变得越复杂、越繁琐、越耗时,尤其是在手动执行时。

本文深入探讨了 Pandas 库提供的功能,以自动化数据清理过程。我们开始吧!

使用 Pandas 清理数据:常用函数

使用 Pandas 自动化数据清理过程,关键在于系统地组合应用多个数据清理函数,将一系列操作封装成一个单一的数据清理管道。在此之前,让我们先介绍一些用于各种数据清理步骤的常用 Pandas 函数。在接下来的内容中,我们假设一个示例 Python 变量 df,其中包含封装在 Pandas DataFrame 对象中的数据集。

  • 填充缺失值: Pandas 提供了自动处理数据集中缺失值的方法,可以通过使用 df.fillna() 方法将缺失值替换为“默认”值,或者通过 df.dropna() 方法删除包含缺失值的任何行或列。
  • 删除重复实例: 使用 df.drop_duplicates() 方法可以轻松自动删除数据集中重复的条目(行),该方法允许在特定属性值或整个实例值与另一个条目重复时删除多余的实例。
  • 操作字符串: 一些 Pandas 函数对于统一字符串属性的格式非常有用。例如,如果 'column' 属性的值混合了小写、句首大写和全大写,而我们希望它们全部变成小写,那么 df['column'].str.lower() 方法可以完成这项工作。要删除意外引入的前导和尾随空格,请尝试使用 df['column'].str.strip() 方法。
  • 操作日期和时间: pd.to_datetime(df['column']) 将包含日期时间信息的字符串列(例如,dd/mm/yyyy 格式)转换为 Python datetime 对象,从而简化了它们的进一步操作。
  • 列重命名: 自动化重命名列的过程可能特别有用,当有多个数据集按城市、地区、项目等分割时,我们希望为所有或部分列添加前缀或后缀,以便于识别。df.rename(columns={old_name: new_name}) 方法使这成为可能。

整合:自动化数据清理管道

现在是时候将上述示例方法整合到一个可重用的管道中,以帮助随着时间的推移进一步自动化数据清理过程。考虑一个包含三个列的个人交易的小型数据集:姓名(name)、购买日期(date)和花费金额(value)。

Code

此数据集已存储在 Pandas DataFrame df 中。

为了创建简单而封装的数据清理管道,我们创建了一个名为 DataCleaner 的自定义类,其中包含一系列自定义方法,用于上述每个数据清理步骤,如下所示:

注意: fillna 方法中的 ffillbfill 参数值是处理缺失值的两种策略示例。特别是,ffill 应用“前向填充”,用前一行的值来填充缺失值。然后使用 bfill 应用“后向填充”来填充任何剩余的缺失值,利用下一行的值,从而确保不留下任何缺失值。

然后是这个类的“核心”方法,它将所有清理步骤整合到一个管道中。请记住,与任何数据操作过程一样,顺序很重要:您需要确定应用不同步骤的最逻辑顺序,以根据所解决的特定问题来实现您在数据中寻找的内容。

最后,我们使用新创建的类一次性应用整个清理过程并显示结果。

code

就是这样!在对原始数据进行一些处理后,我们得到了一个更美观、更统一的版本。

这个封装的管道旨在简化和大大简化以后处理任何新数据批次时的整体数据清理过程。

暂无评论。

发表评论

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。