Guía rápida sobre el método Pandas dropna()
La función DataFrame.dropna()
de la Biblioteca Python Pandas se utiliza para eliminar todas las filas o columnas de un DataFrame que contengan valores que faltan (NaN). Es, por tanto, una de las principales herramientas para la preparación y limpieza de datos.
- Rápido, seguro, flexible y escalable
- Certificado SSL/DDoS incluido
- Dominio y asesor personal incluidos
Sintaxis de dropna()
en Pandas
La función dropna()
de Pandas acepta hasta cinco parámetros y su sintaxis básica es bastante simple:
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False, ignore_index=False)
pythonParámetros relevantes
El comportamiento de la función DataFrame.dropna()
puede verse influenciado por los parámetros que se le pasan. Los parámetros más importantes se resumen en la siguiente tabla:
Parámetro | Descripción | Valor por defecto |
---|---|---|
axis
|
Determina si se eliminas filas (0 o index ) columnas (1 o columns )
|
0 |
how
|
Indica si deben incluirse todos los valores (all ) o solamente algunos valores NaN (any )
|
any
|
tresh
|
Indica el número mínimo de valores no NaN que una fila o columna debe tener para que no se elimine. No se puede combinar con el parámetro how
|
opcional |
subset
|
Determina qué filas o columnas deben ser consideradas | opcional |
inplace
|
Decide si la operación se realiza en el DataFrame original | False
|
ignore_index
|
Si es verdadero o True , los ejes restantes se etiquetarán de 0 a n-1
|
False
|
Cómo utilizar DataFrame.dropna()
El método de Pandas es necesario para limpiar los datos antes del análisis, ya que elimina filas o columnas con valores faltantes. Esto nos ayuda a evitar sesgos a la hora de realizar evaluaciones estadísticas. Además, facilita la creación de gráficos e informes, dado que la presencia de valores faltantes puede provocar representaciones incorrectas en algunos casos.
Eliminar filas con valores faltantes
En el siguiente código analizamos un DataFrame que contiene valores NaN:
import pandas as pd
import numpy as np
# Creación de un DataFrame con datos de ejemplo
data = {
'A': [1, 2, np.nan, 4],
'B': [5, np.nan, np.nan, 8],
'C': [9, 10, 11, 12]
}
df = pd.DataFrame(data)
print(df)
pythonEl DataFrame tiene este aspecto:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
2 NaN NaN 11
3 4.0 8.0 12
En el siguiente paso se usa el método dropna()
de Pandas:
## Eliminación de todas las filas que contienen al menos un valor NaN
df_cleaned = df.dropna()
print(df_cleaned)
pythonAl ejecutar el código se produce el siguiente resultado:
A B C
0 1.0 5.0 9
3 4.0 8.0 12
Solo permanecen la fila cero y la fila tres del DataFrame, ya que el resto de las filas contenían valores NaN.
Eliminación de columnas con valores faltantes
La eliminación de columnas con valores faltantes funciona de forma análoga al primer ejemplo. En este caso, solo es necesario establecer el parámetro axis
de la función en 1:
## Eliminación de todas las columnas que contienen al menos un valor NaN
df_cleaned_columns = df.dropna(axis=1)
print(df_cleaned_columns)
pythonEn el siguiente resultado podemos observar que solo queda la columna “C”, porque es la única que no contiene ningún valor NaN:
C
0 9
1 10
2 11
3 12
Uso del parámetro thresh
Si solo deseas eliminar las filas que tengan menos de dos valores no NaN, puedes utilizar el parámetro thresh
:
## Eliminación de todas las filas con menos de dos valores no NaN
df_thresh = df.dropna(thresh=2)
print(df_thresh)
pythonUna vez que ejecutamos este código, también permanece la primera fila, ya que contiene dos valores no NaN:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
3 4.0 8.0 12
Uso del parámetro subset
El parámetro subset
se utiliza para especificar en qué columnas se buscarán valores faltantes. Solo se eliminarán las filas que tengan valores faltantes en las columnas que se hayan indicado.
## Eliminación de todas las filas que contienen un valor NaN en la columna “A”:
df_subset = df.dropna(subset=['A'])
print(df_subset)
pythonEn este caso, solo se ha eliminado la segunda fila. El valor NaN en la primera fila se ha ignorado siguiendo el parámetro establecido, porque la columna “B” no estaba incluida:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
3 4.0 8.0 12