Estou usando o notebook Ipython para trabalhar com aplicativos pyspark. Eu tenho um arquivo CSV com muitas colunas categóricas para determinar se a renda cai abaixo ou acima do intervalo de 50k. Eu gostaria de executar um algoritmo de classificação, utilizando todas as entradas para determinar a faixa de renda. Preciso criar um dicionário de variáveis para variáveis mapeadas e usar uma função de mapa para mapear as variáveis para números para processamento. Essencialmente, eu gostaria que meu conjunto de dados estivesse em um formato numérico para poder trabalhar na implementação dos modelos.
No conjunto de dados, existem colunas categóricas como educação, estado civil, classe trabalhadora etc. Alguém pode me dizer como convertê-las em colunas numéricas no 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}
Criei um exemplo de dicionário com pares de valores-chave para a classe de trabalho. Mas não sei como usar isso em uma função de mapa e substituir os dados categóricos no arquivo CSV pelo valor correspondente.
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 é o código que escrevi em python normal para converter os dados categóricos em dados numéricos. Funciona bem. Eu quero fazer a conversão no contexto de faísca. E há 9 colunas categóricas na fonte de dados. Existe uma maneira de automatizar o processo de atualização do dicionário para ter um par KV para todas as 9 colunas?