Problem:
Bei einem gegebenen Datenrahmen, der kategoriale Werte enthält, besteht die Aufgabe darin, ihn zu konvertieren diese Kategorien in numerische Indizes um. Angenommen, wir haben Länder als Kategorien wie diese:
cc | temp US | 37.0 CA | 12.0 US | 35.0 AU | 20.0
Anstelle von One-Hot-Codierungen mit get_dummies besteht das Ziel darin, jedem Land einen Index zuzuweisen, z. B. cc_index = [1,2,1,3] .
Lösung:
Um Pandas-Kategorien in numerische Indizes umzuwandeln, befolgen Sie diese Schritte:
Ändern Sie den Datentyp von die kategoriale Spalte:
df.cc = pd.Categorical(df.cc)
Erstellen Sie eine neue Spalte zum Speichern der Kategoriecodes:
df['code'] = df.cc.codes
Dies führt zu einem Datenrahmen mit der zusätzlichen Codespalte, die die numerischen Indizes enthält:
cc temp code 0 US 37.0 2 1 CA 12.0 1 2 US 35.0 2 3 AU 20.0 0
Alternativ können Sie die Astype-Methode verwenden, um die kategoriale Spalte direkt in eine kategoriale Spalte mit Codes umzuwandeln:
df.cc.astype('category').codes
Andere Option besteht darin, die kategoriale Spalte als Index eines neuen Datenrahmens zu verwenden:
df2 = pd.DataFrame(df.temp) df2.index = pd.CategoricalIndex(df.cc)
Das obige ist der detaillierte Inhalt vonWie konvertiert man Pandas-Kategorien in numerische Indizes?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!