Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konvertiert man kategoriale Pandas-Spalten in numerische Indizes ohne „get_dummies“ und „numpy“?

Wie konvertiert man kategoriale Pandas-Spalten in numerische Indizes ohne „get_dummies“ und „numpy“?

Susan Sarandon
Susan SarandonOriginal
2024-10-27 22:51:02420Durchsuche

How to Convert Pandas Categorical Columns to Numerical Indices Without `get_dummies` and `numpy`?

Konvertieren Sie Pandas-Kategorien in Zahlen

Betrachten Sie einen DataFrame mit einer kategorialen Spalte, z. B. Ländercodes:

cc | temp
US | 37.0
CA | 12.0
US | 35.0
AU | 20.0

So konvertieren Sie diese Kategorien in Indizes erstellen und die Verwendung von get_dummies und numpy vermeiden. Beachten Sie die folgenden Schritte:

  1. Spalte kategorisieren: Konvertieren Sie die kategoriale Spalte in einen kategorialen Typ:
df.cc = pd.Categorical(df.cc)
  1. Kategoriecodes abrufen: Verwenden Sie das .codes-Attribut, um die Ganzzahlcodes für jede Kategorie abzurufen:
df['code'] = df.cc.codes

Der resultierende DataFrame enthält a neue Spalte namens Code mit den numerischen Indizes:

   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 Kategoriecodes erhalten, ohne den DataFrame zu ändern:

df.cc.astype('category').codes
  1. Als Index verwenden: Bei Bedarf können Sie die kategoriale Spalte als Index für einen anderen DataFrame verwenden:
df2 = pd.DataFrame(df.temp)
df2.index = pd.CategoricalIndex(df.cc)

Das obige ist der detaillierte Inhalt vonWie konvertiert man kategoriale Pandas-Spalten in numerische Indizes ohne „get_dummies“ und „numpy“?. 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