La existencia de valores NaN es un conjunto de datos puede ser una molestia ya que no es posible realizar muchas operaciones con ellos. Por eso conocer un método para reemplazar los valores NaN en los DataFrame por cualquier otro puede solucionar algunos problemas. Afortunadamente para ello existe el método fillna() en Pandas, con el que se puede reemplazar todas las apariciones de valores NaN por el que se indique.
Para poder ver como es el funcionamiento del método fillna() lo mejor es crear un conjunto de datos aleatorio y reemplazar algunos de sus valores por NaN. Valores que se pueden generar con la función rand() de NumPy. Reemplazado posteriormente un 20% de los valores por NaN, todos aquellos que sean mayores de 0,8. Siendo esto lo que se hace con el siguiente código
import pandas as pd import numpy as np np.random.seed(0) df = pd.DataFrame(np.random.rand(6, 4)) df[df > 0.8] = np.NAN df
0 1 2 3 0 0.548814 0.715189 0.602763 0.544883 1 0.423655 0.645894 0.437587 NaN 2 NaN 0.383442 0.791725 0.528895 3 0.568045 NaN 0.071036 0.087129 4 0.020218 NaN 0.778157 NaN 5 NaN 0.799159 0.461479 0.780529
Ahora, para reemplazar los valores NaN del DataFrame se tiene que usar el método fillna(), indicando como parámetro el valor que se desea reemplazar. Por ejemplo, 1.
df.fillna(1)
0 1 2 3 0 0.548814 0.715189 0.602763 0.544883 1 0.423655 0.645894 0.437587 1.000000 2 1.000000 0.383442 0.791725 0.528895 3 0.568045 1.000000 0.071036 0.087129 4 0.020218 1.000000 0.778157 1.000000 5 1.000000 0.799159 0.461479 0.780529
En el caso de trabajar con grandes conjuntos de datos es importante tener en cuenta que fillna() genera una copia del objeto original. Por lo que después de llamar al método se dispondrá de dos objetos en la memoria, lo que puede afectar al rendimiento. Al igual que la mayoría de los métodos que modifican el contenido de los DataFrame, fillna() cuenta con la propiedad inplace mediante la cual se pueden indicar que los cambios se realizan en el propio objeto y no se cree una copia.
df.fillna(0, inplace=True) df
0 1 2 3 0 0.548814 0.715189 0.602763 0.544883 1 0.423655 0.645894 0.437587 0.000000 2 0.000000 0.383442 0.791725 0.528895 3 0.568045 0.000000 0.071036 0.087129 4 0.020218 0.000000 0.778157 0.000000 5 0.000000 0.799159 0.461479 0.780529
En esta ocasión se ha visto un método de Pandas con el que se pueden reemplazar los valores NaN en los DataFrame. Un método sencillo pero que aun así facilita una operación suele ser necesario realizar de forma habitual.
Imagen de Theodor Moise en Pixabay
Los artículos anteriores de esta serie cubrieron cuatro formas de mirar el valor del cliente:…
Quien se acerca a la criptografía descubre enseguida a dos personajes que aparecen en casi…
En credit scoring el desbalanceo de clases es la norma, no la excepción. En una…
Cualquiera que programe usa la palabra bug a diario para referirse a un fallo en…
Los dos artículos anteriores de la serie cubrieron BG/NBD, el modelo para negocios donde el…
"Tu contraseña debe tener al menos 8 caracteres, una mayúscula, un número y un símbolo…
This website uses cookies.