Pandas多个条件(AND,OR,NOT)中提取行

1. Pandas多个条件(AND,OR,NOT)中提取行

Pandas是Python中一个常用的数据处理库,它的使用方便,能够对数据进行快速的操作和处理。在数据处理过程中,有时候需要根据多个条件来提取符合条件的数据行,这就需要用到Pandas多个条件的处理方式。

1.1 AND条件查询

AND条件查询是指满足多个条件同时成立的记录,这种情况下,可以使用&符号将多个条件组合到一起实现,示例如下:

import pandas as pd

# 创建一个DataFrame

data = {'name': ['Tom', 'Jerry', 'Mike', 'Tony'],

'age': [18, 20, 22, 19],

'sex': ['M', 'M', 'F', 'M']}

df = pd.DataFrame(data)

# AND条件查询

df1 = df[(df['age'] > 18) & (df['sex'] == 'M')]

print(df1)

运行结果如下:

name age sex

1 Jerry 20 M

3 Tony 19 M

从运行结果可以看出,通过&符号将两个条件组合到一起,查询出满足条件的两条记录。

1.2 OR条件查询

OR条件查询是指满足多个条件中任意一个条件成立的记录,这种情况下,可以使用|符号将多个条件组合到一起实现,示例如下:

import pandas as pd

# 创建一个DataFrame

data = {'name': ['Tom', 'Jerry', 'Mike', 'Tony'],

'age': [18, 20, 22, 19],

'sex': ['M', 'M', 'F', 'M']}

df = pd.DataFrame(data)

# OR条件查询

df1 = df[(df['age'] > 20) | (df['sex'] == 'F')]

print(df1)

运行结果如下:

name age sex

2 Mike 22 F

从运行结果可以看出,通过|符号将两个条件组合到一起,查询出满足条件的一条记录。

1.3 NOT条件查询

NOT条件查询是指不满足特定条件的记录,这种情况可以使用~符号对条件进行取反实现,示例如下:

import pandas as pd

# 创建一个DataFrame

data = {'name': ['Tom', 'Jerry', 'Mike', 'Tony'],

'age': [18, 20, 22, 19],

'sex': ['M', 'M', 'F', 'M']}

df = pd.DataFrame(data)

# NOT条件查询

df1 = df[~(df['sex'] == 'M')]

print(df1)

运行结果如下:

name age sex

2 Mike 22 F

从运行结果可以看出,通过~符号对条件进行取反,查询出满足条件的一条记录。

2. 案例演示

接下来,我们通过一个实际案例演示Pandas多个条件查询的使用。

2.1 数据描述

假设有一份员工信息表,其中包括员工的姓名、性别、年龄、月薪等信息。现在需要从中查询出性别为“女”的员工,并且年龄在25岁以下或月薪超过10000元的记录。

首先,让我们来创建一个包含员工信息的DataFrame:

import pandas as pd

# 创建一个包含员工信息的DataFrame

data = {'name': ['Tom', 'Jerry', 'Mike', 'Tony', 'Mary', 'Linda', 'Lucy'],

'age': [20, 28, 30, 24, 25, 26, 22],

'sex': ['M', 'M', 'M', 'M', 'F', 'F', 'F'],

'salary': [8000, 12000, 9000, 8500, 11000, 10000, 13000]}

df = pd.DataFrame(data)

print(df)

运行结果如下:

name age sex salary

0 Tom 20 M 8000

1 Jerry 28 M 12000

2 Mike 30 M 9000

3 Tony 24 M 8500

4 Mary 25 F 11000

5 Linda 26 F 10000

6 Lucy 22 F 13000

2.2 条件查询实现

根据上述条件,我们可以通过Pandas多个条件查询的方式实现,查询代码如下:

# 使用Pandas多个条件查询功能查询符合条件的数据

df1 = df[(df['sex'] == 'F') & ((df['age'] < 25) | (df['salary'] > 10000))]

print(df1)

运行结果如下:

name age sex salary

4 Mary 25 F 11000

6 Lucy 22 F 13000

从运行结果可以看出,查询出符合条件的员工信息。

总结

本文主要介绍了Pandas多个条件查询(AND、OR、NOT)的功能实现方式,并通过一个实际案例演示了其使用方法。在实际数据处理过程中,灵活运用Pandas多个条件查询功能,能够高效地处理数据,提高工作效率。

后端开发标签