In einem Pandas DataFrame
, wie kann eine Spalte, die ein kategorisches Merkmal darstellt (z. B. ob der Tag ein Arbeitstag oder ein Wochenende ist) in einer numerischen Ordnungszahlform (z. B. 1 für Arbeitstag, 2 für Wochenende) so umgewandelt werden es stellt die Werte kategorisch dar, etwa wie (0, 1) für Arbeitstage und (1, 0) für Wochenenden, so dass die Werte nicht vergleichbar sind?Wie werden Ordinalwerte in kategorische umgewandelt?
Es gibt die Alternative pd.get_dummies
(oder die OneHotEncoder
), die zwei Spalten mit 0s und 1s erstellen würde, und dann die beiden Spalten in Tupeln zusammenführen, aber gibt es nicht direkte Möglichkeit, das zu tun?
Beispiel: ich habe:
datetime temp daytype
0 2011-01-01 9.84 2
1 2011-01-02 9.02 2
2 2011-01-03 9.02 1
3 2011-01-04 9.84 1
4 2011-01-05 9.84 1
5 2011-01-06 9.84 1
Ich mag:
datetime temp daytype
0 2011-01-01 9.84 (1, 0)
1 2011-01-02 9.02 (1, 0)
2 2011-01-03 9.02 (0, 1)
3 2011-01-04 9.84 (0, 1)
4 2011-01-05 9.84 (0, 1)
5 2011-01-06 9.84 (0, 1)
(Ich fange vielleicht zu denken, dass ich bin immer es falsch - ist dies nicht die Standardmethode der Darstellung von kategorischen Werten?)
Haben Sie die [Dokumentation zu kategorischen Daten] gesehen? (Http://pandas.pydata.org/pandas-docs/stable/categorical.html) ? – languitar
Ich denke du brauchst 'df ['daytype'] = df ['daytype']. Astype ('category')' – jezrael
Ja, der astype oder dtype wird auch aus der Dokumentation empfohlen. Ich glaube, dass ich (fälschlicherweise) nach einer Möglichkeit suchte, um zu visualisieren, dass die Werte nicht vergleichbar sind. – Ioanna