Indagamos por todo el mundo on line para así tener para ti la solución para tu problema, si tienes alguna difcultad déjanos tu pregunta y te contestamos con gusto.
Solución:
NaN
no se puede almacenar en un número entero array. Esta es una limitación conocida de los pandas en este momento; He estado esperando que se progrese con los valores de NA en NumPy (similares a los NA en R), pero pasarán al menos de 6 meses a un año antes de que NumPy obtenga estas características, al parecer:
http://pandas.pydata.org/pandas-docs/stable/gotchas.html#support-for-integer-na
(Esta función se agregó a partir de la versión 0.24 de pandas, pero tenga en cuenta que requiere el uso de la extensión dtype Int64 (en mayúsculas), en lugar del dtype int64 predeterminado (en minúsculas): https://pandas.pydata.org/pandas- docs/version/0.24/whatsnew/v0.24.0.html#opcional-integer-na-support)
Esta capacidad se agregó a pandas (a partir de la versión 0.24): https://pandas.pydata.org/pandas-docs/version/0.24/whatsnew/v0.24.0.html#opcional-integer-na-support
En este punto, requiere el uso de la extensión dtype Int64 (en mayúsculas), en lugar del dtype int64 predeterminado (en minúsculas).
Si el rendimiento no es el problema principal, puede almacenar cadenas en su lugar.
df.col = df.col.dropna().apply(lambda x: str(int(x)) )
Entonces puedes mezclarlo con NaN
Tanto como quieras. Si realmente quiere tener números enteros, dependiendo de su aplicación, puede usar -1
o 0
o 1234567890
o algún otro valor dedicado para representar NaN
.
También puede duplicar temporalmente las columnas: una como la que tiene, con flotadores; el otro experimental, con ints o cadenas. Luego inserta asserts
en todos los lugares razonables comprobando que los dos están sincronizados. Después de suficientes pruebas, puede soltar los flotadores.
Si te sientes a gusto, puedes dejar una reseña acerca de qué le añadirías a este enunciado.