📌  相关文章
📜  如何通过列值的条件删除 DataFrame 中的行?(1)

📅  最后修改于: 2023-12-03 14:53:19.828000             🧑  作者: Mango

如何通过列值的条件删除 DataFrame 中的行?

在数据分析过程中,我们经常需要根据列值的条件删除 DataFrame 中的行。在 Pandas 中,有多种方法可以做到这一点。

方法一:使用 boolean indexing

boolean indexing 是一种非常常用的方法,可以根据某个列的条件来筛选出符合要求的行。

以下是示例代码:

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
    'age': [25, 36, 28, 32, 24],
    'gender': ['F', 'M', 'M', 'M', 'F']
})

# 根据 age 列的条件筛选出符合要求的行
df = df[df['age'] > 30]

print(df)

输出结果为:

     name  age gender
1     Bob   36      M
3   David   32      M
方法二:使用 query

query 方法可以帮助我们根据某个条件表达式来删除 DataFrame 中的行。

以下是示例代码:

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
    'age': [25, 36, 28, 32, 24],
    'gender': ['F', 'M', 'M', 'M', 'F']
})

# 根据 age 列的条件删除行
df = df.query('age > 30')

print(df)

输出结果为:

     name  age gender
1     Bob   36      M
3   David   32      M
方法三:使用 drop

drop 方法可以删除指定轴上的行或列。我们可以使用 boolean indexing 或条件表达式来指定要删除的行。

以下是示例代码:

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
    'age': [25, 36, 28, 32, 24],
    'gender': ['F', 'M', 'M', 'M', 'F']
})

# 根据 age 列的条件删除行
df = df.drop(df[df['age'] <= 30].index)

print(df)

输出结果为:

     name  age gender
1     Bob   36      M
3   David   32      M

上述代码中,我们使用了 boolean indexing 将符合条件的行筛选出来,并用 drop 方法删除了这些行。

以上是通过列值的条件删除 DataFrame 中的行的方法。其中,boolean indexing 和 query 是比较常用且方便的方法,而 drop 方法则可以更加灵活地指定要删除的行。