Pandas条件筛选与组合筛选的使用

  • Post category:Python

Pandas是一种Python数据分析工具,通过它我们可以很方便地操作数据集。条件筛选和组合筛选是Pandas中常用的操作之一,可以根据指定条件筛选出满足条件的数据子集。以下是该操作的完整攻略。

条件筛选

条件筛选可以通过DataFrame中的布尔条件来进行,例如:

import pandas as pd 

# 创建一个DataFrame
df = pd.DataFrame({
   'name': ['Amy', 'Bob', 'Charlie', 'David'],
   'age': [20, 30, 25, 35],
   'gender': ['F', 'M', 'M', 'M'],
   'score': [80, 90, 85, 95]
})

# 筛选出分数大于等于90的记录
df[df['score']>=90]

在这里,[df['score']>=90]是一个布尔条件,当该条件为True时,相应记录会被选中,否则被过滤掉。上面的代码中,我们通过使用布尔条件选择出满足条件的记录,只输出了分数大于等于90的学生的记录。

组合筛选

组合筛选需要满足多个条件才能筛选出数据记录,可以使用&|~等符号来进行组合。例如:

import pandas as pd 

# 创建一个DataFrame
df = pd.DataFrame({
   'name': ['Amy', 'Bob', 'Charlie', 'David'],
   'age': [20, 30, 25, 35],
   'gender': ['F', 'M', 'M', 'M'],
   'score': [80, 90, 85, 95]
})

# 筛选年龄在20-30之间、分数大于等于90的男生
df[(df['age']>=20) & (df['age']<=30) & (df['gender']=='M') & (df['score']>=90)]

在这里,使用了&符号来连接多个条件, ()用来对条件进行括号分组,能提高组合条件的逻辑性,让代码更易懂,遇到较为复杂的筛选条件直接按照逻辑写出全部条件即可。

除了&号,我们还可以使用|表示‘或’,使用~表示‘非’,例如:

df[(df['age']>=30) | (df['score']>=90)]
df[~(df['gender']=='F')]

上面两行代码分别表示筛选年龄大于等于30或者分数大于等于90的学生信息,和筛选非女性学生的信息。

以上就是Pandas条件筛选与组合筛选的完整攻略,通过这些方法我们可以轻松推广至常见的数据分析场景及其它自定义筛选条件。