Ich verwende Ipython Notebook, um mit Pyspark-Anwendungen zu arbeiten. Ich habe eine CSV-Datei mit vielen kategorialen Spalten, um festzustellen, ob das Einkommen unter oder über dem Bereich von 50.000 liegt. Ich möchte einen Klassifizierungsalgorithmus durchführen, der alle Eingaben verwendet, um den Einkommensbereich zu bestimmen. Ich muss ein Wörterbuch mit Variablen für zugeordnete Variablen erstellen und eine Zuordnungsfunktion verwenden, um die Variablen Zahlen für die Verarbeitung zuzuordnen. Im Wesentlichen würde mein Datensatz in einem numerischen Format vorliegen, damit ich an der Implementierung der Modelle arbeiten kann.
Im Datensatz gibt es kategoriale Spalten wie Bildung, Familienstand, Arbeiterklasse usw. Kann mir jemand sagen, wie man sie in pyspark in numerische Spalten umwandelt?
workclass = {'?':0,'Federal-gov':1,'Local-gov':2,'Never- worked':3,'Private':4,'Self-emp-inc':5,'Self-emp-not-inc':6,'State-gov':7,'Without-pay':8}
Ich habe ein Beispielwörterbuch mit Schlüsselwertpaaren für die Arbeiterklasse erstellt. Ich weiß jedoch nicht, wie ich dies in einer Kartenfunktion verwenden und die kategorialen Daten in der CSV-Datei durch den entsprechenden Wert ersetzen soll.
wc = pd.read_csv('PATH', usecols = ['Workclass'])
df = pd.DataFrame(wc)
wcdict = {' ?':0,' Federal-gov':1,' Local-gov':2,' Never-worked':3,' Private':4,' Self-emp-inc':5,' Self-emp-n-inc':6,' State-gov':7,' Without-pay':8}
df_new = df.applymap(lambda s: wcdict.get(s) if s in wcdict else s)
print(df_new)
Dies ist der Code, den ich in normalem Python geschrieben habe, um die kategorialen Daten in numerische Daten umzuwandeln. Es funktioniert gut. Ich möchte die Konvertierung im Funkenkontext durchführen. Die Datenquelle enthält 9 kategoriale Spalten. Gibt es eine Möglichkeit, den Wörterbuchaktualisierungsprozess zu automatisieren, um ein KV-Paar für alle 9 Spalten zu erhalten?