Pandas 基于“not in”条件从数据框中删除行

Pandas 基于“not in”条件从数据框中删除行

在本文中,我们将讨论使用Pandas如何基于“not in”条件从数据框中删除行。这是一个经常遇到的问题,需要我们对Pandas的筛选和删除方法有一定的了解。

阅读更多:Pandas 教程

数据框

首先,我们需要先了解一下什么是Pandas的数据框,类似于Excel中的表格。我们可以使用以下代码创建一个具有三列的数据框:

import pandas as pd
import numpy as np

data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Ella'],
        'age': [20, 25, 30, 35, 40],
        'gender': ['F', 'M', 'M', 'M', 'F']}
df = pd.DataFrame(data)

这段代码会生成以下数据框:

name age gender
0 Alice 20 F
1 Bob 25 M
2 Charlie 30 M
3 David 35 M
4 Ella 40 F

Pandas基于“not in”条件从数据框中删除行

接下来,我们会讨论如何利用Pandas基于“not in”条件从数据框中删除行。

方法1:使用~符号

我们可以使用~符号来实现“not in”条件,以下代码演示了如何删除’Bob’和’David’的数据:

df = df[~df.name.isin(['Bob', 'David'])]

这段代码使用了isin()函数来通过一个列表来筛选数据,然后使用~符号来表示“not in”的条件,最后用df[]来取出符合条件的数据框。删除结果如下:

name age gender
0 Alice 20 F
2 Charlie 30 M
4 Ella 40 F

方法2:使用query()函数

我们还可以使用query()函数来实现数据筛选,以下代码演示了如何删除’Bob’和’David’的数据:

df = df.query("name not in ['Bob', 'David']")

这段代码使用了query()函数来完成数据筛选,查询条件是”name not in [‘Bob’, ‘David’]”,最后将返回符合条件的数据框。删除结果如下:

name age gender
0 Alice 20 F
2 Charlie 30 M
4 Ella 40 F

总结

本文主要介绍了使用Pandas基于“not in”条件从数据框中删除行的两种方法:使用~符号和使用query()函数。在实践中,我们可以根据具体的需求来选择合适的方法进行数据筛选和删除。这些方法也可以应用于复杂的条件筛选和删除场景,希望对您的数据处理工作有所帮助。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程