NumPy oder Pandas: Halten array Typ as integer, während Sie mit einem NaN-Wert

Gibt es eine bevorzugte Weg, um den Datentyp einer numpy array fester als int (oder int64 oder was auch immer), während immer noch ein element im inneren aufgelistet, wie numpy.NaN?

In allem bin ich mit der Konvertierung eines in-house-Daten-Struktur, um ein Pandas DataFrame. In unserer Struktur haben wir Ganzzahl-Spalten, die noch NaN ' s (aber die dtype der Spalte ist int). Es scheint, Neufassung und alles, was als float, wenn wir machen dies zu einem DataFrame, aber wir würden wirklich gerne int.

Gedanken?

Sachen ausprobiert:

Ich habe versucht mit der from_records() Funktion unter pandas.DataFrame, mit coerce_float=False - und dies nicht hilft. Ich habe auch versucht, mit Hilfe von NumPy maskierte arrays, mit NaN fill_value, die auch nicht funktioniert. Alle diese verursacht den Datentyp der Spalte zu einem float.

Konnte verwenden Sie ein numpy maskierte array?
Ich werde es einmal versuchen. Ich habe auch versucht, die from_records Funktion unter pandas.DataFrame, mit coerce_float=False, aber kein Glück... es macht immer noch die neuen Daten Typ float64.
Ja, kein Glück. Auch mit maskierten array, das es noch konvertiert zu schweben. Es sah aus wie Pandas geht so: "Ist es ein NaN überall? ... Dann hat alles einen Schwimmer." Hoffentlich gibt es einen Weg, um dieses.
Optional Nullable-Integer-Unterstützung ist nun offiziell Hinzugefügt pandas 0.24.0 - endlich 🙂 - finden Sie eine aktualisierte Antwort unten. pandas 0.24.x release notes

InformationsquelleAutor ely | 2012-07-18

Schreibe einen Kommentar