Estoy usando el cuaderno Ipython para trabajar con aplicaciones pyspark. Tengo un archivo CSV con muchas columnas categóricas para determinar si el ingreso cae por debajo o por encima del rango de 50k. Me gustaría realizar un algoritmo de clasificación tomando todas las entradas para determinar el rango de ingresos. Necesito construir un diccionario de variables a variables mapeadas y usar una función de mapeo para mapear las variables a números para su procesamiento. Esencialmente, quisiera que mi conjunto de datos esté en un formato numérico para poder trabajar en la implementación de los modelos.
En el conjunto de datos, hay columnas categóricas como educación, estado civil, clase trabajadora, etc. ¿Alguien puede decirme cómo convertirlas en columnas numéricas en pyspark?
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}
Creé un diccionario de muestra con pares de valores clave para la clase de trabajo. Pero, no sé cómo usar esto en una función de mapa y reemplazar los datos categóricos en el archivo CSV con el valor correspondiente.
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)
Este es el código que he escrito en Python normal para convertir los datos categóricos en datos numéricos. Funciona bien. Quiero hacer la conversión en contexto de chispa. Y, hay 9 columnas categóricas en la fuente de datos. ¿Hay alguna manera de automatizar el proceso de actualización del diccionario para tener un par KV para las 9 columnas?