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?
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