Pandas 如何根据条件表达式从 pandas DataFrame 中删除行 |
您所在的位置:网站首页 › dataframe提取满足条件的行 › Pandas 如何根据条件表达式从 pandas DataFrame 中删除行 |
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 |