📅  最后修改于: 2023-12-03 14:53:19.828000             🧑  作者: Mango
在数据分析过程中,我们经常需要根据列值的条件删除 DataFrame 中的行。在 Pandas 中,有多种方法可以做到这一点。
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 方法可以帮助我们根据某个条件表达式来删除 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 方法可以删除指定轴上的行或列。我们可以使用 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 方法则可以更加灵活地指定要删除的行。