以下是使用 Pandas 按条件筛选数据的实现攻略:
根据条件选择数据
Series 操作
可以使用布尔运算符(如:=
,>
,<
,>=
,<=
或!=
)将列与值进行比较。生成一系列 True/False 值,再将一个 pandas.series 与该值对比时,True 值表示哪些数据需要被筛选出来。模板:df["Coloumn Name"] > 10
中的 df
表示 Pandas.DataFrame 对象;"Coloumn Name"
表示选定的列名;>10
表示需要筛选的条件。
示例1:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David','Emily'],
'age': [25, 26, 22, 29, 26],
'gender': ['F', 'M', 'M', 'M', 'F'],
'math': [60, 70, 80, 90, 88],
'english': [70, 95, 75, 85, 70]}
df = pd.DataFrame(data)
df[df['math'] > 70]
输出结果:
name age gender math english
2 Charlie 22 M 80 75
3 David 29 M 90 85
4 Emily 26 F 88 70
在这个例子里,我们选取所有数学成绩大于 70 分的记录。
DataFrame 操作
在 Pandas 的 DataFrame 中,可以通过类似于 NumPy 数组的方式使用切片进行筛选。不同点是 DataFrame 容许我们在切片中传递条件,用于过滤方法(boolean indexing)。示例:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
'age': [25, 26, 22, 29, 26],
'gender': ['F', 'M', 'M', 'M', 'F'],
'math': [60, 70, 80, 90, 88],
'english': [70, 95, 75, 85, 70]}
df = pd.DataFrame(data)
df[(df['math'] > 70) & (df['gender'] == 'M')]
输出结果:
name age gender math english
2 Charlie 22 M 80 75
3 David 29 M 90 85
在这个例子里,我们选取数学成绩 math
大于 70 分,并且性别 gender
为 M 的记录。
当条件为多个值时
在 Pandas 中我们可以通过 isin() 函数来处理包含多个值的查询条件。示例:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
'age': [25, 26, 22, 29, 26],
'gender': ['F', 'M', 'M', 'M','F'],
'math': [60, 70, 80, 90, 88],
'english': [70, 95, 75, 85, 70]}
df = pd.DataFrame(data)
df[df['name'].isin(['Alice', 'David'])]
输出结果:
name age gender math english
0 Alice 25 F 60 70
3 David 29 M 90 85
在这个例子里,我们根据 "name"列选取了名字为Alice和David的记录。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas按条件筛选数据的实现 - Python技术站