Numpy: Conversión de enteros que aceptan valores NULL

Creado en 28 oct. 2020  ·  3Comentarios  ·  Fuente: numpy/numpy

Hola,

Recientemente, pandas introdujo dtype de enteros que aceptan valores NULL:
https://pandas.pydata.org/pandas-docs/stable/user_guide/integer_na.html

Esperaría que numpy convierta automáticamente tales matrices en un tipo flotante y se llene con np.nan. Sin embargo, por alguna razón lo convierte en objeto:

pd.DataFrame({'col': [1, np.nan, 3]}).astype('UInt8').values.dtype

que conduce a errores como este

np.nanmax(pd.DataFrame({'col': [1, np.nan, 3]}).astype('UInt8').values)

devuelve "TypeError: el valor booleano de NA es ambiguo"

¿Es eso esperado?

Todos 3 comentarios

¿Es eso esperado?

Yo diría que sí, ya que los enteros que aceptan valores NULL no son un tipo NumPy.

Estoy de acuerdo, esto es básicamente por diseño y significa que las cosas están funcionando como se esperaba. No es imposible que NumPy pueda entender esto en algún momento, pero es poco probable que suceda pronto.

Al usar el nuevo UInt8 , en cierto sentido está eligiendo que NaN realmente no es lo mismo que NA, y los pandas ahora tienen pd.NA para hacer esta distinción más clara.

@ Kreol64 Abrí pandas-dev / pandas # 37460 para discutir esto en el lado de los pandas

¿Fue útil esta página
0 / 5 - 0 calificaciones