Introducción
En este tutorial, aprenderás cómo utilizar la función dropna()
de DataFrame de pandas.
Los valores NA
son “No Disponibles”. Esto puede aplicarse a Null
, None
, pandas.NaT
o numpy.nan
. Al usar dropna()
, se eliminarán las filas y columnas con estos valores. Esto puede ser beneficioso para proporcionarte solo datos válidos.
Por defecto, esta función devuelve un nuevo DataFrame y el DataFrame fuente permanece sin cambios.
Este tutorial fue verificado con Python 3.10.9, pandas 1.5.2 y NumPy 1.24.1.
Sintaxis
dropna()
toma los siguientes parámetros:
axis
:{0 (o 'índice'), 1 (o 'columnas')}, predeterminado 0
- Si es
0
, se eliminan las filas con valores faltantes. - Si es
1
, se eliminan las columnas con valores faltantes. how
:{'any', 'all'}, predeterminado 'any'
- Si es
'any'
, se elimina la fila o columna si alguno de los valores esNA
. - Si es
'all'
, se elimina la fila o columna si todos los valores sonNA
. thresh
: (opcional) un valorint
para especificar el umbral para la operación de eliminación.subset
: (opcional) etiqueta de columna o secuencia de etiquetas para especificar filas o columnas.inplace
: (opcional) un valorbool
.- Si
True
, el DataFrame fuente se modifica y se devuelveNone
.
Construyendo DataFrames de Muestra
Construye un DataFrame de muestra que contiene valores válidos e inválidos:
Este código imprimirá el DataFrame:
OutputName ID Population Regions
0 Shark 1 100 1
1 Whale 2 200 None
2 Jellyfish 3 NaN NaT
3 Starfish 4 NaT NaT
Luego agrega un segundo DataFrame con filas y columnas adicionales con valores NA
:
Esto producirá un nuevo DataFrame:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
2 Jellyfish 3 NaN NaT NaT
3 Starfish 4 NaT NaT NaT
4 NaT NaT NaT NaT NaT
Utilizarás los DataFrames anteriores en los ejemplos que siguen.
Eliminando Todas las Filas con Valores Faltantes
Usa dropna()
para eliminar las filas con algún valor None
, NaN
, o NaT
:
Esto producirá:
OutputName ID Population Regions
0 Shark 1 100 1
A new DataFrame with a single row that didn’t contain any NA
values.
Eliminación de todas las columnas con valores faltantes
Utilice dropna()
con axis=1
para eliminar las columnas con cualquier valor None
, NaN
o NaT
:
Las columnas con cualquier valor None
, NaN
o NaT
serán eliminadas:
OutputName ID
0 Shark 1
1 Whale 2
2 Jellyfish 3
3 Starfish 4
A new DataFrame with a single column that contained non-NA
values.
Eliminación de filas o columnas si todos
los valores son Null
con how
Utilice el segundo DataFrame y how
:
Las filas con todos
los valores iguales a NA
serán eliminadas:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
2 Jellyfish 3 NaN NaT NaT
3 Starfish 4 NaT NaT NaT
Se eliminó la quinta fila.
A continuación, utilice how
y especifique el axis
:
Las columnas con todos
los valores iguales a NA
serán eliminadas:
OutputName ID Population Regions
0 Shark 1 100 1
1 Whale 2 200 None
2 Jellyfish 3 NaN NaT
3 Starfish 4 NaT NaT
4 NaT NaT NaT NaT
Se eliminó la quinta columna.
Eliminar filas o columnas si se cruza un umbral con thresh
Utilice el segundo DataFrame con thresh
para eliminar las filas que no cumplan el umbral de al menos 3
valores no NA
:
Las filas que no tienen al menos 3
valores no NA
serán eliminadas:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
Se eliminaron la tercera, cuarta y quinta filas.
Eliminar filas o columnas para subconjuntos
específicos
Utilice el segundo DataFrame con subset
para eliminar las filas con valores NA
en la columna Población
:
Las filas que tengan valores NA
en Población
serán eliminadas:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
Se eliminaron la tercera, cuarta y quinta filas.
También puede especificar los valores de índice
en el subset
al eliminar columnas del DataFrame:
Las columnas que contienen valores NA
en el subconjunto de filas 1
y 2
:
OutputName ID
0 Shark 1
1 Whale 2
2 Jellyfish 3
3 Starfish 4
4 NaT NaT
Se eliminaron la tercera, cuarta y quinta columnas.
Cambiando el DataFrame de origen después de eliminar filas o columnas con inplace
Por defecto, dropna()
no modifica el DataFrame de origen. Sin embargo, en algunos casos, es posible que desee ahorrar memoria al trabajar con un DataFrame de origen grande utilizando inplace
.
Este código no utiliza una variable dfresult
.
Esto producirá la siguiente salida:
OutputName ID Population Regions
0 Shark 1 100 1
El DataFrame original ha sido modificado.
Conclusión
En este artículo, utilizaste la función dropna()
para eliminar filas y columnas con valores NA
.
Continúa tu aprendizaje con más tutoriales de Python y pandas – Tutorial del módulo Python pandas, Eliminar filas duplicadas en pandas.
Referencias
Source:
https://www.digitalocean.com/community/tutorials/pandas-dropna-drop-null-na-values-from-dataframe