Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konvertiert man kategoriale Daten in Pandas in numerische Indizes?

Wie konvertiert man kategoriale Daten in Pandas in numerische Indizes?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-28 11:00:30784Durchsuche

How to Convert Categorical Data to Numerical Indices in Pandas?

Pandas: Konvertieren Sie Kategorien in numerische Indizes

In Pandas können Situationen auftreten, in denen Sie kategoriale Daten wie Länder, in numerische Indizes umwandeln. Obwohl pd.get_dummies Kategorien in One-Hot-Codierungen konvertieren kann, ist dies möglicherweise nicht immer die effizienteste Lösung. Hier ist eine Schritt-für-Schritt-Anleitung zum Konvertieren von Kategorien in numerische Indizes:

Schritt 1: Kategorisieren Sie die Spalte

Ändern Sie zunächst den Typ der Spalte in kategorisch:

<code class="python">df.cc = pd.Categorical(df.cc)</code>

Dies wandelt die Länderspalte in eine kategoriale Spalte um, gekennzeichnet durch pd.Categorical(column_name).

Schritt 2: Erstellen Sie eine neue Spalte für Codes

Als nächstes erstellen Sie eine neue Spalte zum Speichern der numerischen Indizes:

<code class="python">df['code'] = df.cc.codes</code>

Das Codes-Attribut der kategorialen Spalte weist jeder Kategorie einen eindeutigen ganzzahligen Index zu.

Beispiel:

Betrachten Sie den folgenden DataFrame:

   cc  temp
0  US  37.0
1  CA  12.0
2  US  35.0
3  AU  20.0

Nachdem Sie die obigen Schritte ausgeführt haben, erhalten Sie einen neuen DataFrame:

   cc  temp  code
0  US  37.0     2
1  CA  12.0     1
2  US  35.0     2
3  AU  20.0     0

Zusätzliche Optionen:

  • Codes abrufen, ohne den DataFrame zu ändern: df.cc.astype('category').codes
  • Kategoriale Spalte als Index erstellen: df2 = pd.DataFrame(df.temp); df2.index = pd.CategoricalIndex(df.cc)

Das obige ist der detaillierte Inhalt vonWie konvertiert man kategoriale Daten in Pandas in numerische Indizes?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn