Halte Pandas davon ab, int in float zu konvertieren

8

Ich habe ein DataFrame . Zwei relevante Spalten sind die folgenden: eine ist eine Spalte von int und eine andere ist eine Spalte von str .

Ich verstehe, dass wenn ich NaN in die Spalte int einfüge, Pandas alle int in float umwandeln, weil es keinen NaN -Wert für int gibt.

Wenn ich jedoch None in die Spalte str einfüge, konvertiert Pandas auch alle meine int in float . Das macht für mich keinen Sinn - warum wirkt sich der Wert, den ich in Spalte 2 anwende, auf Spalte 1 aus?

Hier ist ein einfaches Arbeitsbeispiel (Python 2):

%Vor%

Die Ausgabe ist

%Vor%

Gibt es eine Möglichkeit, die Ausgabe wie folgt zu machen:

%Vor%

ohne die erste Spalte in int neu zu schreiben.

  • Ich bevorzuge int anstelle von float , weil die tatsächlichen Daten in Diese Spalte sind Ganzzahlen. Wenn es keine Problemumgehung gibt, werde ich einfach benutze float though.

  • Ich bevorzuge es nicht neu zu schreiben, weil ich in meinem eigentlichen Code nicht weiß Speichere das aktuelle dtype .

  • Ich brauche auch die Daten Zeile für Zeile eingefügt.

user2570465 26.10.2016, 00:43
quelle

1 Antwort

12

Wenn Sie dtype=object einstellen, kann Ihre Serie beliebige Datentypen enthalten:

%Vor%     
maxymoo 26.10.2016, 01:09
quelle

Tags und Links