Numpy: Conversão de inteiros anuláveis

Criado em 28 out. 2020  ·  3Comentários  ·  Fonte: numpy/numpy

Oi,

Recentemente, os pandas introduziram dtipo inteiro anulável:
https://pandas.pydata.org/pandas-docs/stable/user_guide/integer_na.html

Eu esperaria que o numpy convertesse automaticamente essas matrizes em um tipo float e as preenchesse com np.nan. No entanto, por algum motivo, ele o converte em objeto:

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

o que leva a erros como este

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

retorna "TypeError: o valor booleano de NA é ambíguo"

Isso é esperado?

Todos 3 comentários

Isso é esperado?

Eu diria que sim, pois inteiros anuláveis ​​não são do tipo NumPy.

Eu concordo, isso ocorre basicamente por design e significa que as coisas estão funcionando conforme o esperado. Não é impossível que o NumPy possa entender isso em algum ponto, mas é improvável que aconteça em breve.

Ao usar o novo UInt8 , você está, em certo sentido, escolhendo que NaN realmente não é o mesmo que NA, e os pandas têm pd.NA agora para tornar esta distinção mais clara.

@ Kreol64 Abri pandas-dev / pandas # 37460 para discutir isso no lado dos pandas

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

qualiaa picture qualiaa  ·  3Comentários

amuresan picture amuresan  ·  4Comentários

'
Pezhvuk picture Pezhvuk  ·  4Comentários

toddrjen picture toddrjen  ·  4Comentários

astrofrog picture astrofrog  ·  4Comentários