Soluci贸n

Pandas

Vista general

El problema se refiere a la gesti贸n de los datos faltantes en un DataFrame de pandas, mismo que representa la informaci贸n de los alumnos. Especificamente, hay algunas filas en las que la columna name est谩 vac铆a (contiene valores como NoneNaN). El objetivo es eliminar esas filas del DataFrame utilizando la funci贸n dropna de pandas.

Conceptos clave:

  1. Funci贸n dropna: esta funci贸n pertenece a la libreria pandas y se utiliza para eliminar valores faltantes. Los valores faltantes en pandas, generalmente se representan con el valor NaN (abreviatura para Not a Number), aunque en el ejemplo aparece None, el cual tambi茅n se considera un valor faltante.

A continuaci贸n se muestra un uso general de la funci贸n dropna:

DataFrame.dropna(axis=0,
                 how='any',
                 thresh=None,
                 subset=None,
                 inplace=False)

Argumentos de la funci贸n dropna:

  1. axis: Puede ser 0 o 'index', 1 o 'columns'. Por default es 0. Si axis=0, elimina las filas que contienen valores nulos, y si axis=1, elimina las columnas que contienen valores nulos.
  2. how: Determina si una fila o columna se elimina del DataFrame.
    • how='any': Si al menos un valor NaN est谩 presente, elimina esa fila o columna (default).
    • how='all': Si todos los valores son NaN, elimina esa fila o columna.
  3. thresh: Requiere muchos valores non-NaN. Este par谩metro es un valor entero que especifica un n煤mero m铆nimo de valores non-NaN para conservar la fila/columna.
  4. subset: Etiquetas a lo largo del otro eje a tener en cuenta, por ejemplo, si est谩 eliminando filas, 茅stas ser铆an una lista de columnas a incluir. Esto es particularmente 煤til cuando solo se desea considerar la presencia de valores NaN en ciertas columnas.
  5. inplace: Es un valor booleano que indica que queremos modificar el mismo DataFrame si se define como inplace=True. Si se desea conservar el DataFrame original intacto, evite usar inplace=True y asigne el resultado a una nueva variable de tipo DataFrame.

Intuici贸n

Necesitamos usar la funci贸n dropna para eliminar las filas con informaci贸n faltante en base a la columna name. Podemos realizar esto de la siguiente manera:

  • Solo estamos considerando la columna name, de manera que usamos subset=['name']. Este argumento le dice a dropna que considere solo la columna name para identificar filas con valores faltantes. Asi que, solo las filas donde la columna name tiene valores faltantes ser谩n eliminadas.
  • Necesitamos modificar el DataFrame original, asi que usamos inplace=True. De esta forma, estaremos modificando el DataFrame students directamente. Si se usa inplace=False (o si se omite este argumento), entonces se estar谩 creando un nuevo DataFrame con la informaci贸n eliminada y el DataFrame students original se quedar铆a intacto.
students.dropna(subset=['name'], inplace=True)

Visualizaci贸n de la funci贸n dropna

create a dataframe from a list fig2

Cuando se pasa este DataFrame a la funci贸n:

student_id name age
32 Piper 5
217 Grace 19
779 None 20
849 None 14

Retornar谩:

student_id name age
32 Piper 5
217 Grace 19

Implementaci贸n

import pandas as pd


def dropMissingData(students: pd.DataFrame) -> pd.DataFrame:
    students.dropna(subset=['name'], inplace=True)
    return students

slackmart blog 漏 2024