Soluci贸n

Pandas

Vista general

Este problema nos proporciona un DataFrame y nos pide que filtremos un registro.

Conceptos clave:

  1. DataFrame: una estructura en forma de tabla 2D, similar a una hoja de c谩lculo o una tabla SQL. Cada fila representa un registro individual y cada columna un atributo diferente. Se puede redimensionar y est谩 dise帽ada para manejar una mezcla de diferentes tipos de informaci贸n.
  2. El atributo loc: es una de las formas principales para filtrar informaci贸n de un DataFrame. Utiliza etiquetas, lo cual significa que se tiene que especificar el nombre de las filas o columnas que se quieren seleccionar. Si se busca usar valores enteros, utilize iloc.
  3. Expresi贸n booleana: una serie de valores True/False utilizados para filtrar o seleccionar elementos de otra estructura de datos, como una lista, un arreglo, o un DataFrame, en base a ciertas condiciones.

Intuici贸n

El DataFrame students tiene tres columnas:

  1. student_id (tipo: int) - es un identificar 煤nico para cada alumno.
  2. name (tipo: object, que por lo general es un string en pandas) - es el nombre del alumno.
  3. age (tipo: int) - es la edad del alumno.

En este problema, debemos crear una funci贸n que acepta un DataFrame como argumento y retorna otro DataFrame con la informaci贸n requerida.

Dentro de nuestra funci贸n, utilizaremos la funci贸n loc para seleccionar la fila donde el student_id es 101 y regresamos solo las columnas name y age.

Para hacer esto, debemos pasar dos argumentos a la funci贸n loc.

students.loc[students['student_id'] == 101, ['name', 'age']]

Visualizaci贸n de la funci贸n loc

select data fig1

Cuando se pasa este DataFrame a la funci贸n:

student_id name age
101 Ulysses 13
53 William 10
128 Henry 6
3 Henry 11

Retornar谩:

name age
Ulysses 13

Implementaci贸n

import pandas as pd


def selectData(students: pd.DataFrame) -> pd.DataFrame:
    return students.loc[
        students["student_id"] == 101,
        ["name", "age"]
    ]

slackmart blog 漏 2024