基于条件从pandas数据框中删除行

2024-05-09 20:55:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我是熊猫的新手,请原谅我的问题!

我有以下代码

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)

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


Tags: 代码nameimportpandasdfnamesascat
1条回答
网友
1楼 · 发布于 2024-05-09 20:55:41

一般boolean indexing

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

相关问题 更多 >