Filtrar filas después de groupby() en Pandas Python

Fariba Laiq 15 febrero 2024
  1. Método groupby() de Pandas
  2. Filtrar filas después de groupby() en Pandas Python
Filtrar filas después de groupby() en Pandas Python

Pandas es una biblioteca de código abierto en Python que se utiliza para analizar y manipular datos. Con la ayuda de Pandas, podemos crear marcos de datos y realizar varias operaciones en ellos para extraer o recuperar datos.

Con el uso del módulo Pandas, también podemos extraer, filtrar y clasificar datos. Este artículo explorará cómo podemos filtrar filas en un conjunto de datos después de realizar la operación groupby().

Método groupby() de Pandas

El método groupby() en el módulo Pandas nos ayuda a clasificar los datos en categorías y aplicarles operaciones adicionales. Este método también es una forma eficiente de agregar datos.

Podemos manipular datos en marcos de datos usando dataframe.groupby() con algunos criterios definidos. Ahora apliquemos el método groupby() al siguiente marco de datos.

Usamos el siguiente código para generar este marco de datos.

Código de ejemplo:

import pandas as pd

data = {
    "Student_Name": ["Anil", "Suharwardy", "Fatina", "John", "Karen"],
    "Country": ["India", "India", "Pakistan", "America", "America"],
    "Biology": [68, 73, 87, 58, 78],
    "Chemistry": [78, 98, 89, 73, 87],
}
data_frame = pd.DataFrame(data=data)
print(data_frame)

Producción:

Ejemplo de marco de datos de pandas

Ahora, agrupemos estos datos por país con la ayuda de groupby().

En el siguiente fragmento, hemos agregado los criterios para el método groupby(), que se utiliza para ordenar cada entrada en categorías. Luego imprimimos los datos agrupados con la ayuda de un bucle.

Código de ejemplo:

import pandas as pd

data = {
    "Student_Name": ["Anil", "Suharwardy", "Fatina", "John", "Karen"],
    "Country": ["India", "India", "Pakistan", "America", "America"],
    "Biology": [68, 73, 87, 58, 78],
    "Chemistry": [78, 98, 89, 73, 87],
}
data_frame = pd.DataFrame(data=data)
grouped = data_frame.groupby("Country")
for one in grouped:
    print(one, "\n")

Producción:

Usando el método groupby() de Pandas

Filtrar filas después de groupby() en Pandas Python

Ahora que entendemos cómo funciona groupby(), podemos seguir sabiendo cómo aplicar filtros a los datos agrupados. Continuando con el marco de datos de ejemplo anterior, supongamos que queremos filtrar el país y otra información sobre el estudiante que obtuvo una puntuación de 73 en Biología.

Filtraríamos esto usando el método apply() justo después de groupby().

Código de ejemplo:

import pandas as pd

data = {
    "Student_Name": ["Anil", "Suharwardy", "Fatina", "John", "Karen"],
    "Country": ["India", "India", "Pakistan", "America", "America"],
    "Biology": [68, 73, 87, 58, 78],
    "Chemistry": [78, 98, 89, 73, 87],
}
data_frame = pd.DataFrame(data=data)
grouped = data_frame.groupby("Country").apply(lambda x: x[x["Biology"] == 73])
print(grouped)

Producción:

Filas de filtro de pandas después del método groupby () - Salida 1

Incluso podemos imprimir todos los datos de los estudiantes que pertenecen a un país específico especificando el país en el método aplicar(). Este código devuelve dos filas de nuestro marco de datos.

Código de ejemplo:

import pandas as pd

data = {
    "Student_Name": ["Anil", "Suharwardy", "Fatina", "John", "Karen"],
    "Country": ["India", "India", "Pakistan", "America", "America"],
    "Biology": [68, 73, 87, 58, 78],
    "Chemistry": [78, 98, 89, 73, 87],
}
data_frame = pd.DataFrame(data=data)
grouped = data_frame.groupby("Country").apply(lambda x: x[x["Country"] == "America"])
print(grouped)

Producción:

Filas de filtro de pandas después del método groupby () - Salida 2

En conclusión, el módulo Pandas ha hecho que la manipulación de datos sea lo suficientemente fácil y eficiente con sus herramientas integrales y métodos inteligentes. Los marcos de datos se pueden agrupar y filtrar fácilmente utilizando los métodos groupby() y apply() de Pandas descritos en detalle anteriormente.

Sin embargo, es importante tener en cuenta que hay más de una forma de filtrar y ordenar los datos, ya que Pandas es un módulo muy extenso. Siempre podemos elegir el más adecuado para nuestros requisitos de desarrollo únicos.

Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Artículo relacionado - Pandas GroupBy