Saltar al contenido

Reemplazo de Pandas o Numpy Nan con None para usar con MysqlDB

Solución:

@bogatron lo tiene bien, puedes usar where, vale la pena señalar que puede hacer esto de forma nativa en pandas:

df1 = df.where(pd.notnull(df), None)

Nota: esto cambia el tipo de todas las columnas para object.

Ejemplo:

In [1]: df = pd.DataFrame([1, np.nan])

In [2]: df
Out[2]: 
    0
0   1
1 NaN

In [3]: df1 = df.where(pd.notnull(df), None)

In [4]: df1
Out[4]: 
      0
0     1
1  None

Nota: lo que no puede hacer es refundir los DataFrames dtype para permitir todos los tipos de tipos de datos, usando astypey luego el DataFrame fillna método:

df1 = df.astype(object).replace(np.nan, 'None')

Desafortunadamente, ni esto, ni el uso replace, funciona con None vea este problema (cerrado).


Además, vale la pena señalar que para la mayoría de los casos de uso no es necesario reemplazar NaN con None, consulte esta pregunta sobre la diferencia entre NaN y None en pandas.

Sin embargo, en este caso específico parece que sí (al menos en el momento de esta respuesta).

df = df.replace({np.nan: None})

El crédito es para este tipo aquí en este problema de Github.

Puedes reemplazar nan con None en su matriz numpy:

>>> x = np.array([1, np.nan, 3])
>>> y = np.where(np.isnan(x), None, x)
>>> print y
[1.0 None 3.0]
>>> print type(y[1])
<type 'NoneType'>
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *