Numpy: Konvertierung von Nullable-Ganzzahlen

Erstellt am 28. Okt. 2020  ·  3Kommentare  ·  Quelle: numpy/numpy

Hi,

Kürzlich haben Pandas nullable integer dtype eingeführt:
https://pandas.pydata.org/pandas-docs/stable/user_guide/integer_na.html

Ich würde erwarten, dass numpy solche Arrays automatisch in einen Float-Typ konvertiert und mit np.nan füllt. Aus irgendeinem Grund wird es jedoch in ein Objekt umgewandelt:

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

was zu Fehlern wie diesem führt

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

gibt "TypeError: boolescher Wert von NA ist mehrdeutig" zurück

Ist das zu erwarten?

Alle 3 Kommentare

Ist das zu erwarten?

Ich würde sagen, ja, da nullable Integer kein NumPy-Typ sind.

Ich stimme zu, dies ist im Wesentlichen beabsichtigt und bedeutet, dass die Dinge wie erwartet funktionieren. Es ist nicht ausgeschlossen, dass NumPy dies irgendwann versteht, aber es ist unwahrscheinlich, dass es bald passiert.

Indem Sie das neue UInt8 , wählen Sie in gewisser Weise, dass NaN wirklich nicht dasselbe ist wie NA, und Pandas haben jetzt pd.NA , um diese Unterscheidung klarer zu machen.

@Kreol64 Ich habe pandas-dev/pandas#37460 geöffnet, um dies auf der Panda-Seite zu besprechen

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen