Pandas 如何使用’in’和’not in’过滤数据框,就像在SQL中一样
在数据分析和处理中,Pandas是一个非常流行的Python库。Pandas提供了许多有用的方法和函数来处理大型数据集。在本文中,我们将介绍如何使用’in’和’not in’操作符来过滤数据框。
阅读更多:Pandas 教程
创建一个数据框
让我们首先创建一个简单的数据框,以演示如何使用’in’和’not in’操作符。下面的代码将创建一个名为df的数据框,其中包含三列和五行数据。
import pandas as pd
data = {'Name': ['Tom', 'William', 'John', 'Jenny', 'Susan'],
'Age': [25, 32, 18, 47, 31],
'Salary': [50000, 62000, 40000, 75000, 55000]}
df = pd.DataFrame(data)
print(df)
这应该打印出以下输出:
Name Age Salary
0 Tom 25 50000
1 William 32 62000
2 John 18 40000
3 Jenny 47 75000
4 Susan 31 55000
使用’in’过滤数据框
‘in’操作符可以帮助我们筛选出数据框中指定列中包含某些特定值的行。例如,让我们尝试仅选择年龄为25和31岁的行,如下所示:
df_age = df[df['Age'].isin([25, 31])]
print(df_age)
这将输出以下内容:
Name Age Salary
0 Tom 25 50000
4 Susan 31 55000
可以看到,我们只筛选了年龄为25和31岁的行。
使用’not in’过滤数据框
‘not in’操作符与’in’操作符相反。它可以帮助我们筛选出某列中不包含特定值的行。例如,让我们尝试选择薪水不在40000和62000之间的行,如下所示:
df_salary = df[~df['Salary'].isin([40000, 62000])]
print(df_salary)
这将打印出以下内容:
Name Age Salary
0 Tom 25 50000
3 Jenny 47 75000
4 Susan 31 55000
可以看到,我们只选择了薪水不在40000和62000之间的行。
复杂的过滤条件
有时我们需要在数据框中进行复杂的过滤。让我们以一个示例来说明这一点。假设我们仅希望选择以下行:年龄为25岁以上且薪水不在40000和55000之间的员工。我们可以像下面这样实现:
df_complex = df[(df['Age'] >= 25) & (~df['Salary'].isin([40000, 55000]))]
print(df_complex)
这将输出以下内容:
Name Age Salary
0 Tom 25 50000
3 Jenny 47 75000
可以看到,我们只选择了年龄为25岁以上且薪水不在40000和55000之间的员工。
总结
在本文中,我们介绍了如何使用’in’和’not in’操作符来过滤Pandas数据框中的数据。我们还演示了如何将这些操作符与其他常见的过滤条件(如’>’或'<‘)组合使用。这些技巧可以帮助您更轻松地处理和分析大型数据集。