Pandas 如何根据条件表达式从 pandas DataFrame 中删除行

您所在的位置:网站首页 dataframe提取满足条件的行 Pandas 如何根据条件表达式从 pandas DataFrame 中删除行

Pandas 如何根据条件表达式从 pandas DataFrame 中删除行

2024-05-10 19:40| 来源: 网络整理| 查看: 265

Pandas 如何根据条件表达式从 pandas DataFrame 中删除行

在本文中,我们将介绍如何使用 Pandas 删除 DataFrame 中符合条件的行。Pandas 是一个 Python 库,用于处理和分析数据。其中一个常见的需求是去除不需要的行,通常是基于某个条件。

假设我们有以下 DataFrame:

import pandas as pd df = pd.DataFrame({ 'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emma'], 'age': [25, 30, 35, 40, 45], 'salary': [5000, 6000, 7000, 8000, 9000] }) print(df)

这将输出:

name age salary 0 Alice 25 5000 1 Bob 30 6000 2 Charlie 35 7000 3 David 40 8000 4 Emma 45 9000

阅读更多:Pandas 教程

操作1:使用布尔索引

布尔索引是 Pandas 中基于一组布尔条件的索引。对于那些满足条件的行或列,将返回 True,反之则返回 False。在 Pandas 中,我们可以使用这些布尔值来过滤 DataFrame。下面是如何基于条件删除 Pandas DataFrame 中的行:

df = df[df.age != 35] print(df)

这将输出:

name age salary 0 Alice 25 5000 1 Bob 30 6000 3 David 40 8000 4 Emma 45 9000

在这个例子中,我们选择了所有年龄不等于35的行,并将它们重新赋值给原始 DataFrame,这样就可以删除了.

我们也可以选择年龄小于或等于35的行,使用以下代码:

df = df[df.age = 8000] print(df)

这将输出:

name age salary 3 David 40 8000 4 Emma 45 9000 操作3:使用 drop 方法

可以使用 Pandas 中的 drop 方法,通过传递条件来删除符合此条件的行。在这个例子中,我们将删除所有年龄等于30和35的行。

df = df.drop(df[(df.age == 30) | (df.age == 35)].index) print(df)

输出如下:

name age salary 0 Alice 25 5000 3 David 40 8000 4 Emma 45 9000

在该示例中,我们首先选择考虑删除的行,通过将这些行的索引传递给 drop 方法来删除它们。

我们也可以根据薪水删除所有行:

df = df.drop(df[df.salary > 0].index) print(df)

这将输出:

name age salary Series([], Name: name, dtype: object)

在这个例子中,我们选择了所有薪水大于0的行,但实际上不存在这样的行,因此输出结果为空Series。

操作4: 使用 where 方法

另一种删除符合条件的行的方法是使用 where 方法。

df = df.where(df.age


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3