Die Datensätze für die Ausführung des maschinellen Lernens umfassen sowohl numerische als auch kategoriale Variablen. Kategoriale Variablen sind Daten vom Typ String-Typ, die Menschen leicht verstehen. Maschinen dagegen können kategoriale Eingaben nicht direkt verstehen. Folglich muss der kategoriale Inhalt in numerische Werte umgewandelt werden, die Maschinen interpretieren können.
In diesem Tutorial diskutieren wir drei verschiedene Möglichkeiten, um kategoriale Werte in numerische Werte in Pandas DataFrame umzuwandeln
Ansatz 1: Verwenden Sie Ersatz ()
In Python wird Ersatz () verwendet, um die angegebenen Werte zu ändern oder in neue Werte umzuwandeln, die wir angegeben haben. Um mehrere Werte zu ersetzen, müssen wir zwei Listen als Parameter übergeben. Die erste Liste speichert die zu ersetzenden tatsächlichen Werte, und die zweite Liste speichert die Werte, die die Werte in der ersten Liste ersetzen.
Syntax
DataFrame_Object ['Spalte'] = DataFrame_Object ['Spalte'].Ersetzen ([Wert 1, Wert2,…], [Wert1, Wert2,…])Hier ist die Spalte der Name der Spalte, in der wir die Werte ersetzen.
Betrachten Sie den Datenrahmen
Lassen Sie uns den benannten Pandas -Datenfrequer erstellen Sets die 4 Spalten mit 10 Zeilen halten.
# Importieren Sie den Datenrahmen aus dem PANDAS -ModulAusgang
Prioritätsgeschlechtsalter AlterWir sehen zwei Spalten mit dem kategorialen Typ (Objekt), ich.e., Priorität und Geschlecht.
Wir müssen diese also in numerische/ganzzahlige Werte konvertieren.
Beispiel 1
Ersetzen wir Werte in der Geschlechtsspalte mit Ersatz () Methode.
# Importieren Sie den Datenrahmen aus dem PANDAS -ModulAusgang
Prioritätsgeschlechtsalter AlterErläuterung
Wir ersetzen 'M' durch 1 und 'f' durch 2 und speichern die Spaltenwerte erneut in der Spalte Geschlecht. Wir können sehen, dass die Geschlechtsspalte Werte innerhalb von 1 oder 2 enthält.
Beispiel 2
Ersetzen wir Werte in der Prioritätsspalte mit Ersatz () -Methode.
# Importieren Sie den Datenrahmen aus dem PANDAS -ModulAusgang
Prioritätsgeschlechtsalter AlterErläuterung
Es gibt drei Kategorien in der Prioritätsspalte. Sie sind "niedrig", "hoch" und "mittel". Wir ersetzen 'niedrig' durch 0, 'Medium' mit 1 und 'hoch' durch 2 und speichern die Spaltenwerte erneut in der Prioritätsspalte.
Ansatz 2: Verwenden von Anwendung (faktorisieren ())
Die andere Methode, die Pandas uns bereitgestellt hat, ist der Datenrahmen.anwenden () 'Funktion zum Konvertieren aller kategorialen Werte in Ganzzahlen.
Um mehrere kategoriale Spalten in Ganzzahlen umzuwandeln, sind wir dieser Technik verfolgt:
Die Faktorisierungsmethode nimmt einen Wert mit einem "Objekt" -Datentyp und konvertiert ihn in "int".
Wenn Sie nur die kategorialen Werte einer bestimmten Spalte in Ganzzahlen konvertieren möchten, wird angewendet () nicht verwendet.
Syntax für eine Spalte
DataFrame_Object ['Spalte'] = Pandas.Faktorisieren Sie (DataFrame_Object ['Spalte']) [0]Syntax für alle Spalten
DataFrame_Object [DataFrame_Object.select_dtypes (['Objekt']).Spalten] = DataFrame_Object [DataFrame_Object.select_dtypes (['Objekt']).Säulen].Bewerben Sie (Lambda X: Pandas.Faktorisieren Sie (x) [0])Notiz: Der Austausch beginnt von 0.
Beispiel 1: Ersetzen Sie die kategorialen Werte der einzelnen Spalten
Ersetzen wir Werte in der Geschlechtsspalte mithilfe von Faktorize () -Methode.
# Importieren Sie den Datenrahmen aus dem PANDAS -ModulAusgang
Prioritätsgeschlechtsalter AlterErläuterung
Wir ersetzen 'M' durch 0 und 'f' durch 1 und speichern die Spaltenwerte erneut in der Spalte Geschlecht. Jetzt können wir sehen, dass die geschlechtsspalte Spalte Werte innerhalb von 0 oder 1 enthält.
Beispiel 2: Ersetzen Sie alle kategorialen Spaltenwerte
Ersetzen wir die Werte in allen Spalten mithilfe der Methode an applanter (faktorisieren ()).
# Importieren Sie den Datenrahmen aus dem PANDAS -ModulAusgang
Prioritätsgeschlechtsalter AlterErläuterung
Wir können in Follow sehen:
Bisher haben wir den Austausch kategorieller Werte durch ganzzahlige Werte in einzelnen oder allen Spalten durch bekannte kategoriale Werte gesehen. Angenommen, es gibt einen riesigen Datensatz mit mehr als einem Lakh -Aufzeichnungen. So ersetzen Sie die kategorialen Werte?
Die Lösung ist die Etikettencodierung.
Lassen Sie uns diesen Ansatz diskutieren.
Ansatz 3: Verwenden von LabelCoding
LAGECODER () ist die Methode, die im Sklearn -Modul vorhanden ist und die kategorialen Werte einer bestimmten Spalte in eine Ganzzahl umwandelt. Wir müssen die kategorialen Werte nicht angeben.
Fit_transform () -Methode wird zusammen mit labelCoder () verwendet, die den transformierten Werten passt.
In dieser Technik beginnen die ersetzten Werte von 0 und der Ersatz erfolgt in alphabetischer Reihenfolge der kategorialen Werte.
Syntax
DataFrame_Object ['Spalte'] = LAGECODER ().FIT_TRANSFORM (DataFrame_Object ['Spalte']))Hier ist die Spalte der Name der Spalte, in der wir die Werte ersetzen.
Beispiel
Ersetzen wir Werte im Geschlecht, Prioritätsspalten unter Verwendung des folgenden Ansatzes:
# Importieren Sie den Datenrahmen aus dem PANDAS -ModulAusgang
Prioritätsgeschlechtsalter AlterErläuterung
Abschluss
Unser Leitfaden dreht sich um die Konvertierung kategoriale Werte in numerische Werte, damit sie von den Maschinen verständlich gemacht werden können, da der Objektdatenatyp nicht von ihnen verarbeitet werden kann. Wir haben Sie in die drei Ansätze der „Pandas“ -Bibliothek vorgestellt, um den erforderlichen Datenatyp zu erhalten. Denken Sie daran, Sie sollten den LabelCoding -Ansatz verwenden, da Sie nicht wissen, wie viele Kategorien in der Spalte des Pandas DataFrame vorhanden sind.