Die Umwandlung aller vorkommen von True/False, 1/0 in einem dataframe mit gemischter Datentyp
Ich habe einen dataframe, der hat über 100 Spalten, gibt Es einige Boolesche Spalten und einige chars. Ich möchte, um zu ersetzen Sie alle booleschen Werte True/False und auch -1 mit 1/0. Ich möchte es auf ganze dataframe statt einzelne Spalte.
Sah ich einige Lösungen hier, wie das konvertieren die Spalte integer. Aber ich möchte vermeiden, die Bewegung werde durch 100s von Spalten.
Hier ist etwas, was ich erfolglos versucht:
test.applymap(lambda x: 1 if x=='True' else x)
test.applymap(lambda x: 0 if x=='False' else x)
Aber der dataframe test hat immer noch True/False
x
gleichTrue
, nicht'True'
. Auch so, Sie immer noch müssen, konvertieren Sie die Spalte Typ erste; Speicherung1
in einem boolean-Feld wird nur noch speichernTrue
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
applymap
ist nicht in-place standardmäßig wird es wieder ein neues dataframe.Den richtigen Weg:
oder
oder einfach
Obwohl
replace
scheint der beste Weg, dies zu erreichen:Für eine einzelne Spalte, der einfachste Weg ist bei weitem zu konvertieren die Spalte Typ. Pandas ist smart genug, um die Karte boolean int richtig.
Wenn df.column_name beginnt, wie
Boolean
, es werden Nullen und Einsen nach der Konvertierung zu gebenint
oder
oder verwendet werden, mit lambda:
lambda x: int(x)
True ist 1, False ist 0 und -1 wird -1.
Definieren Sie eine Funktion, die Schleifen die .replace() durch jede Spalte der Dataframe: