在Pandas中用多个过滤器选择行

在Pandas中用多个过滤器选择行

在这篇文章中,我们将使用pandas中的多个过滤器来选择行。我们将在pandas中使用多个条件、逻辑运算符和loc()函数来选择多条记录。

用逻辑运算符即AND和OR来选择行,可以很容易地通过>, <,<=, >=和==的</=,>组合<=, >来提取有多个过滤器的行。loc()主要基于标签,但也可以与布尔数组一起使用,通过标签或布尔数组访问一组行和列。

Dataset Used:

创建一个带有姓名、班级、英语成绩、数学成绩和历史成绩等列的数据框架。我们将使用下面的数据集进行所有操作。

import pandas as pd
  
# initialize list of lists
data = [['John', 8, 7, 6, 5], ['Paul', 8, 3, 6, 4],
        ['Juli', 9, 10, 9, 9], ['Geeta', 9, 5, 4, 4]]
  
# Create the pandas DataFrame
df = pd.DataFrame(
    data, columns=['Name', 'Class', 'English', 
                   'Maths', 'History'])
  
# print dataframe.
print(df)
Python

输出

在Pandas中用多个过滤器选择行

以下是实现用多个过滤器选择行的各种操作:

  • 选择分数为英语大于6分和分数为数学大于8分的学生行。
df1 = df[(df.English>6) & (df.Maths>8)]
print(df1)
Python

输出:

在Pandas中用多个过滤器选择行

  • 选择英语成绩大于等于5分或历史成绩大于7分的学生的行。
df1 = df[(df.English>=5) | (df.History>7)]
print(df1)
Python

输出

在Pandas中用多个过滤器选择行

  • 选择九年级学生中英语成绩大于等于5分或历史成绩大于7分的行。
df1 = df[(df.Class == 9) & ((df.English>=5) | (df.History>7))]
print(df1)
Python

输出:

在Pandas中用多个过滤器选择行

  • 选择英语分数小于等于5分,数学分数小于等于5分,历史分数小于等于5分的学生行。
df1 = df[(df.English<=5) & (df.Maths<=5) & (df.History<=5)]
print(df1)
Python

输出:

在Pandas中用多个过滤器选择行

  • 选择英语成绩小于等于5分或数学成绩大于5分或历史成绩小于等于5分的8年级学生的行。
df1 = df[(df.Class == 8) & ((df.English<=5) | (df.Maths>5) | (df.History<=5))]
print(df1)
Python

输出:

在Pandas中用多个过滤器选择行

  • loc()选择英语成绩大于6分和数学成绩大于6分的行。
df1 = df.loc[(df['English']>6) & (df['Maths']>6)]
print(df1)
Python

输出:

在Pandas中用多个过滤器选择行

  • loc()选择学生的英语分数大于6分或数学分数大于4分的行,我们只显示有姓名和班级的列。
df1 = df.loc[((df['English']>6) | (df['Maths']>4)),['Name','Class']]
print(df1)
Python

输出:

在Pandas中用多个过滤器选择行

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册