Cómo reemplazar todos los valores de NaN con ceros en una columna de un DataFrame de pandas
Cuando trabajamos con grandes conjuntos de datos, a veces hay valores de NaN
en el conjunto de datos que desea reemplazar con algún valor promedio o con un valor adecuado. Por ejemplo, tiene una lista de calificación de estudiantes, y algunos estudiantes no intentaron la prueba, por lo que el sistema ingresó automáticamente NaN
en lugar de 0.0. A continuación se enumeran las diferentes formas de lograr esta tarea.
Utilizaremos el mismo DataFrame
en las siguientes secciones de la siguiente manera,
import pandas as pd
import numpy as np
data = {
"name": ["Oliver", "Harry", "George", "Noah"],
"percentage": [90, 99, 50, 65],
"grade": [88, np.nan, 95, np.nan],
}
df = pd.DataFrame(data)
print(df)
El siguiente es el DataFrame con NaN
en grado.
name percentage grade
0 Oliver 90 88.0
1 Harry 99 NaN
2 George 50 95.0
3 Noah 65 NaN
Método df.fillna()
para reemplazar todos los valores de NaN por ceros
Reemplacemos los valores NaN
con la ayuda del método df.fillna()
.
import pandas as pd
import numpy as np
data = {
"name": ["Oliver", "Harry", "George", "Noah"],
"percentage": [90, 99, 50, 65],
"grade": [88, np.nan, 95, np.nan],
}
df = pd.DataFrame(data)
df = df.fillna(0)
print(df)
La siguiente es la salida con NaN
reemplazado por cero.
name percentage grade
0 Oliver 90 88.0
1 Harry 99 0.0
2 George 50 95.0
3 Noah 65 0.0
El método df.fillna()
llena los valores NaN
con el valor dado. No cambia los datos del objeto, pero devuelve un nuevo DataFrame por defecto a menos que el parámetro inplace
esté configurado como True
.
Podríamos reescribir los códigos anteriores con el parámetro inplace
habilitado para ser True
.
import pandas as pd
import numpy as np
data = {
"name": ["Oliver", "Harry", "George", "Noah"],
"percentage": [90, 99, 50, 65],
"grade": [88, np.nan, 95, np.nan],
}
df = pd.DataFrame(data)
df.fillna(0, inplace=True)
print(df)
Método df.replace()
Este método funciona igual que df.fillna()
para reemplazar NaN
por 0. df.replace()
también se puede usar para reemplazar otro número. Echemos un vistazo a los códigos.
import pandas as pd
import numpy as np
data = {
"name": ["Oliver", "Harry", "George", "Noah"],
"percentage": [90, 99, 50, 65],
"grade": [88, np.nan, 95, np.nan],
}
df = pd.DataFrame(data)
nan_replaced = df.replace(np.nan, 0)
print(nan_replaced)
Lo siguiente será la salida.
name percentage grade
0 Oliver 90 88.0
1 Harry 99 0.0
2 George 50 95.0
3 Noah 65 0.0