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 None
贸 NaN
). El objetivo es eliminar esas filas del DataFrame utilizando la funci贸n
dropna
de pandas.
Conceptos clave:
- 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 valorNaN
(abreviatura paraNot a Number
), aunque en el ejemplo apareceNone
, 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
:
axis
: Puede ser0 o 'index', 1 o 'columns'
. Por default es 0. Siaxis=0
, elimina las filas que contienen valores nulos, y siaxis=1
, elimina las columnas que contienen valores nulos.how
: Determina si una fila o columna se elimina del DataFrame.how='any'
: Si al menos un valorNaN
est谩 presente, elimina esa fila o columna (default).how='all'
: Si todos los valores sonNaN
, elimina esa fila o columna.
thresh
: Requiere muchos valoresnon-NaN
. Este par谩metro es un valor entero que especifica un n煤mero m铆nimo de valoresnon-NaN
para conservar la fila/columna.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 valoresNaN
en ciertas columnas.inplace
: Es un valor booleano que indica que queremos modificar el mismo DataFrame si se define comoinplace=True
. Si se desea conservar el DataFrame original intacto, evite usarinplace=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 usamossubset=['name']
. Este argumento le dice adropna
que considere solo la columnaname
para identificar filas con valores faltantes. Asi que, solo las filas donde la columnaname
tiene valores faltantes ser谩n eliminadas. - Necesitamos modificar el DataFrame original, asi que usamos
inplace=True
. De esta forma, estaremos modificando el DataFramestudents
directamente. Si se usainplace=False
(o si se omite este argumento), entonces se estar谩 creando un nuevo DataFrame con la informaci贸n eliminada y el DataFramestudents
original se quedar铆a intacto.
students.dropna(subset=['name'], inplace=True)
Visualizaci贸n de la funci贸n dropna
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