Wie kann ich die anzeigen True/False, 1/0 in ein Pandas DataFrame?
Ich habe eine Spalte in python pandas DataFrame hat, boolean True/False-Werte, aber für weitere Berechnungen brauche ich, 1/0 Darstellung. Gibt es einen schnellen pandas/numpy Weg, das zu tun?
BEARBEITEN:
Die Antworten scheinen nicht zu halten im Fall von numpy, dass, gegeben ein array mit sowohl Ganzzahlen und Wahr/Falsch-Werte, zurück dtype=object
auf solchen array. In Verbindung mit weiteren Berechnungen in numpy, ich musste explizit np_values = np.array(df.values, dtype = np.float64)
.
- Was weitere Berechnungen sind erforderlich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
True
ist1
in Python, und ebensoFalse
ist0
*:Sollten Sie in der Lage sein, um alle Vorgänge, die Sie wollen auf Sie Sie zu behandeln, als seien Sie zahlen, wie Sie sind zahlen:
Also um deine Frage zu beantworten, keine Arbeit erforderlich - Sie haben bereits, was Sie suchen.
* Hinweis: ich benutze ist als ein Englisches Wort, nicht das Python-Schlüsselwort
is
-True
nicht das gleiche Objekt wie in jeder x-beliebigen1
.np.sin(True).dtype
ist float16 für mich.df.my_column.mean()
Ordnung (wie Sie implizieren), aber wenn ich versuche:df.groupby("some_other_column").agg({"my_column":"mean"})
bekomme ichDataError: No numeric types to aggregate
, so dass es scheint, Sie sind NICHT immer das gleiche. Nur zur info.bool
Spalten einfach Prima.TypeError: numpy boolean subtract, the
- ` - operator ist veraltet, verwenden Sie das bitwise_xor, die^
Betreiber, oder die logical_xor-Funktion statt.` Mit @User die Antwort der dies behebt.bool
Spalten, wie es fürint
SpaltenNur ganz explizit eine Antwort auf die Frage, wie die Konvertierung einer einzelnen Spalte mit boolean-Werte um eine Spalte von Integer 1 oder 0:
df.somecolumn = df.somecolumn.astype(int)
Multiplizieren Sie einfach Ihre Dataframe von 1 (int)
Können Sie auch dies direkt auf Frames