Seleccionar filas con múltiples filtros en Pandas

En este artículo, seleccionaremos filas usando múltiples filtros en pandas. Seleccionaremos múltiples filas en pandas usando múltiples condiciones, operadores lógicos y usando la función loc() .

La selección de filas con operadores lógicos, es decir, AND y OR, se puede lograr fácilmente con una combinación de >, <, <=, >= y == para extraer filas con múltiples filtros. loc() se basa principalmente en etiquetas, pero también se puede usar con una array booleana para acceder a un grupo de filas y columnas por etiqueta o una array booleana.

Conjunto de datos utilizado:

Creación de un marco de datos con las columnas Nombre, Clase, Marcas en inglés, Marcas en matemáticas y Marcas en historia. Vamos a utilizar el siguiente conjunto de datos para todas las operaciones:   

Python

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)

Producción

A continuación se muestran varias operaciones que implementan la selección de filas con múltiples filtros:

  • Seleccionar la fila con estudiantes que tienen calificaciones en inglés superiores a 6 y calificaciones en matemáticas superiores a 8.

Python

df1 = df[(df.English>6) & (df.Maths>8)]
print(df1)

Producción:

  • Seleccionar filas con estudiantes que tengan calificaciones en inglés mayores que iguales a 5 o calificaciones en la historia mayores que 7.

Python

df1 = df[(df.English>=5) | (df.History>7)]
print(df1)

Producción

  • Seleccionando filas con estudiantes de la clase 9 que tienen notas en inglés mayores que igual a 5 o notas es historia mayor que 7.

Python

df1 = df[(df.Class == 9) & ((df.English>=5) | (df.History>7))]
print(df1)

Producción:

  • Seleccionando la fila con estudiantes que tienen calificaciones en inglés menores a 5 y calificaciones en matemáticas menores a 5 y calificaciones en historia menores a 5.

Python

df1 = df[(df.English<=5) & (df.Maths<=5) & (df.History<=5)]
print(df1)

Producción:

  • Seleccionando filas con estudiantes de la clase 8 que tienen calificaciones en inglés menores a 5 o calificaciones en matemáticas mayores a 5 o calificaciones en historia menores a 5.

Python

df1 = df[(df.Class == 8) & ((df.English<=5) | (df.Maths>5) | (df.History<=5))]
print(df1)

Producción:

  • Seleccionar filas con loc() que tengan marcas en inglés mayores que 6 y marcas en matemáticas mayores que 6.

Python

df1 = df.loc[(df['English']>6) & (df['Maths']>6)]
print(df1)

Producción:

  • Seleccionar filas con loc() que tengan calificaciones de estudiantes en inglés mayores a 6 o calificaciones en matemáticas mayores a 4. Solo mostramos columnas con Nombre y Clase.

Python

df1 = df.loc[((df['English']>6) | (df['Maths']>4)),['Name','Class']]
print(df1)

Producción:

Publicación traducida automáticamente

Artículo escrito por devangj9689 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *