Numpy: Konversi bilangan bulat nullable

Dibuat pada 28 Okt 2020  ·  3Komentar  ·  Sumber: numpy/numpy

Hai,

Baru-baru ini panda memperkenalkan dtype integer yang dapat dibatalkan:
https://pandas.pydata.org/pandas-docs/stable/user_guide/integer_na.html

Saya berharap numpy untuk secara otomatis mengubah array seperti itu menjadi tipe float dan mengisi dengan np.nan. Namun, untuk beberapa alasan itu mengubahnya menjadi objek:

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

yang mengarah ke kesalahan seperti ini

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

mengembalikan "TypeError: nilai boolean NA ambigu"

Apakah itu yang diharapkan?

Semua 3 komentar

Apakah itu yang diharapkan?

Saya akan mengatakan ya, karena bilangan bulat yang dapat dibatalkan bukan tipe NumPy.

Saya setuju, ini pada dasarnya berdasarkan desain dan berarti semuanya berfungsi seperti yang diharapkan. Bukan tidak mungkin NumPy mungkin memahami hal ini di beberapa titik, tetapi itu tidak mungkin terjadi segera.

Dengan menggunakan UInt8 , Anda dapat memilih bahwa NaN benar-benar tidak sama dengan NA, dan panda memiliki pd.NA sekarang untuk membuat perbedaan ini lebih jelas.

@Kreol64 Saya membuka pandas-dev/pandas#37460 untuk membahas ini di sisi panda

Apakah halaman ini membantu?
0 / 5 - 0 peringkat