Pandas - Limpieza de celdas vacías
celdas vacias
Las celdas vacías pueden potencialmente darte un resultado incorrecto cuando analizas datos.
Quitar filas
Una forma de lidiar con las celdas vacías es eliminar las filas que contienen celdas vacías.
Esto suele estar bien, ya que los conjuntos de datos pueden ser muy grandes y eliminar algunas filas no tendrá un gran impacto en el resultado.
Ejemplo
Devuelve un nuevo marco de datos sin celdas vacías:
import pandas as pd
df = pd.read_csv('data.csv')
new_df = df.dropna()
print(new_df.to_string())
En nuestros ejemplos de limpieza, usaremos un archivo CSV llamado 'dirtydata.csv'.
Descarga el archivo sucio.csv . o Abra datos sucios.csv
Nota: De forma predeterminada, el dropna()
método devuelve un nuevo DataFrame y no cambiará el original.
Si desea cambiar el DataFrame original, use el
inplace = True
argumento:
Ejemplo
Eliminar todas las filas con valores NULL:
import pandas as pd
df = pd.read_csv('data.csv')
df.dropna(inplace = True)
print(df.to_string())
Nota: Ahora, dropna(inplace = True)
NO devolverá un nuevo DataFrame, pero eliminará todas las filas que contengan valores NULL del DataFrame original.
Reemplazar valores vacíos
Otra forma de lidiar con celdas vacías es insertar un nuevo valor en su lugar.
De esta manera, no tiene que eliminar filas enteras solo por algunas celdas vacías.
El fillna()
método nos permite reemplazar las celdas vacías con un valor:
Ejemplo
Reemplace los valores NULL con el número 130:
import pandas as pd
df = pd.read_csv('data.csv')
df.fillna(130, inplace = True)
Reemplazar solo para columnas especificadas
El ejemplo anterior reemplaza todas las celdas vacías en todo el marco de datos.
Para reemplazar solo los valores vacíos de una columna, especifique el nombre de la columna para el DataFrame:
Ejemplo
Reemplace los valores NULL en las columnas "Calorías" con el número 130:
import pandas as pd
df = pd.read_csv('data.csv')
df["Calories"].fillna(130, inplace = True)
¡Obtener la certificación!
$10 INSCRÍBETE
Reemplazar usando la media, la mediana o la moda
Una forma común de reemplazar celdas vacías es calcular el valor de la media, la mediana o la moda de la columna.
Pandas usa los métodos mean()
median()
y mode()
para calcular los valores respectivos para una columna específica:
Ejemplo
Calcule la MEDIA y reemplace los valores vacíos con ella:
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].mean()
df["Calories"].fillna(x, inplace = True)
Media = el valor promedio (la suma de todos los valores dividida por el número de valores).
Ejemplo
Calcule la MEDIANA y reemplace cualquier valor vacío con ella:
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].median()
df["Calories"].fillna(x, inplace = True)
Mediana = el valor en el medio, después de haber ordenado todos los valores de forma ascendente.
Ejemplo
Calcule el MODO y reemplace cualquier valor vacío con él:
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].mode()[0]
df["Calories"].fillna(x, inplace = True)
Moda = el valor que aparece con más frecuencia.