Python中根据列上的特定条件删除DataFrame行

2025年1月5日 | 阅读 5 分钟

在数据分析中,这通常涉及处理原始和非结构化数据集,删除不需要的行是一项关键技能。Python 的 Pandas 模块提供了用于正确控制、平滑和处理数据的有用工具。通过根据应用于某一列的唯一标准删除行,它还有助于清理数据集。在其众多功能中,Pandas 提供了基于应用于其列的条件来过滤和移除 DataFrame 中行的各种方法。

本文简要介绍了数据框以及根据特定要求从数据框中删除行的各种技术。

理解 Pandas 中的 DataFrame

Pandas 是一个流行的 Python 数据操作工具,它使处理结构化数据变得简单。DataFrame 是其基本数据结构之一。DataFrame 是一个二维的、异构的、可变的表格数据结构,由行和列组成。

在 DataFrame 中,列通常代表数据的不同特征或属性,而行通常对应于特定的观察或记录。每列可能包含不同类型的数据,包括文本、数值和分类数据。

Pandas 内置的功能和方法使得编辑和分析 DataFrame 变得容易。DataFrame 可以处理大量数据类型,包括空值或缺失值。它们广泛应用于数据分析、机器学习和可视化相关的应用中。

以下是如何在 Python 中使用 Pandas 创建数据框

输出

   Employee ID  Name  Age
0          101  Alen   23
1          102   Max   54
2          103  Paul   36
3          104   Lin   24
4          105  Drek   45

如果您希望基于特定资格删除 DataFrame 中的特定行,使用条件语句至关重要。可以使用这些语句来评估特定列中的值,并可以删除满足您预定标准的行。换句话说,您可以通过移除不符合您标准的行来处理与您的查看相关的数据。

使用 drop 方法

在 Pandas 中处理数据时,经常需要根据特定标准删除 DataFrame 中的行。例如,我们可以通过使用 drop 方法来做到这一点,该方法允许我们根据给定的条件删除给定列中的行。通过指定列和条件,我们可以快速过滤掉不需要的行并根据我们的规范调整数据。

让我们看一个使用 drop 方法删除行和列的示例。

输出

   Employee ID  Name
0          101  Alen
1          102   Max
2          103  Paul
3          104   Lin
4          105  Drek

在这里,我们使用了 drop 函数删除了“age”列。我们创建了另一个数据框,并在删除列后将原始数据框的列存储在该数据框中。

使用多个条件删除行

我们不仅可以使用 drop() 函数来清理数据框,还可以通过多种条件,使用不同的技术,使用逻辑运算符,条件语句等。现在,我们可以看到几个例子,以获得有关删除行和列的出色信息。

1. 基于多个条件删除行

假设我们有一个表示学生信息的 DataFrame

让我们探讨一下我们希望根据多个条件删除行的场景。

输出

    Name  Age  Score
0  Alen   25     80
1    Ben   30     75
3  Den   28     85

这段代码旨在过滤给定的 DataFrame,只提取“Age”值等于或大于 25 且“Score”值等于或大于 70 的那些行。

2. 使用 query() 方法

在 Pandas 中,您可以使用 query() 技术来搜索和过滤数据框,这些数据框基于特定条件。此方法的功能与 if 条件类似,但当处理复杂条件时特别有用,因为它有助于使您的代码更具可读性且易于理解。通过使用 query(),您可以快速有效地从数据框中提取所需的数据,而无需编写冗长复杂的代码。

它将提供与我们从上面的代码片段获得的结果相同的结果,但方式更清晰。

3. 借助部分字符串匹配

部分字符串匹配是一种搜索技术,它将字符串的一部分与特定模式进行匹配。此方法通常用于编程和数据分析,以根据特定的搜索条件搜索相关数据。根据要求,搜索可能针对整个字符串或其特定部分。部分字符串匹配是一个强大的工具,可用于从大型数据集中提取数据,并且它经常用于自然语言处理、数据挖掘和其他需要复杂搜索操作的应用程序。

考虑一个包含水果信息的 DataFrame

让我们删除水果名称包含字母“e”的行

输出

    Fruit  Quantity
0   Apple        10
2  Orange         8
3  Grapes        20

str.contains() 方法用于测试字符“e”是否存在,而忽略其大小写。然后会打印出水果名称中包含字母“e”的行。此外,为了解析搜索结果,可以使用“~”符号拒绝条件,最重要的是,会隐藏不匹配的行。

结论

Pandas 提供了多种根据不同标准从数据框中提取行的方法。用户可以使用广泛的条件语句、逻辑运算符(& 表示“和”,| 表示“或”)或像 query() 和字符串操作这样的特殊技术来过滤行以满足他们的数据处理需求。

这些可视化展示了 pandas 在处理各种场景下的 DataFrame 时是多么的灵活和强大,使得数据科学家和研究人员能够有效地存储和清理数据,以便进一步分析或可视化。