Skip to main content
 首页 » 编程设计

python之根据条件从 pandas DataFrame 中删除行

2025年05月04日8insus

我是 Pandas 的新手,所以请原谅新手问题!

我有以下代码;

import pandas as pd 
 
pet_names = ["Name","Species" 
"Jack","Cat" 
"Jill","Dog" 
"Tom","Cat" 
"Harry","Dog" 
"Hannah","Dog"] 
 
df = pd.DataFrame(pet_names) 
 
df = df[df['Species']!='Cat'] 
 
print(df) 

我想删除“物种”列中所有包含“猫”的行,留下所有的狗。我该怎么做呢?不幸的是,此代码当前返回错误。

请您参考如下方法:

一般 bool 索引

df[df['Species'] != 'Cat'] 
# df[df['Species'].ne('Cat')] 
 
  Index    Name Species 
1     1    Jill     Dog 
3     3   Harry     Dog 
4     4  Hannah     Dog 

df.query

df.query("Species != 'Cat'") 
 
  Index    Name Species 
1     1    Jill     Dog 
3     3   Harry     Dog 
4     4  Hannah     Dog 

有关 pd.eval() 函数系列及其功能和用例的信息,请访问 Dynamic Expression Evaluation in pandas using pd.eval() .


df.isin

df[~df['Species'].isin(['Cat'])] 
 
  Index    Name Species 
1     1    Jill     Dog 
3     3   Harry     Dog 
4     4  Hannah     Dog