Я використовую ноутбук Ipython для роботи з програмами pyspark. У мене є файл CSV з великою кількістю категоричних стовпців, щоб визначити, чи потрапляє дохід під діапазон 50k або більше. Я хотів би виконати алгоритм класифікації, беручи всі вхідні дані для визначення діапазону доходів. Мені потрібно побудувати словник змінних до відображених змінних і використовувати функцію map для зіставлення змінних у числах для обробки. По суті, я б мій набір даних був у цифровому форматі, щоб я міг працювати над реалізацією моделей.
У наборі даних є такі категоричні стовпці, як освіта, сімейний стан, робочий клас тощо. Чи може хтось мені сказати, як перетворити їх у числові стовпці в 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}
Я створив зразок словника з парами ключових значень для робочого класу. Але я не знаю, як це використовувати у функції карти та замінити категоричні дані у файлі CSV відповідним значенням.
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)
Це код, який я написав у звичайному пітоні для перетворення категоричних даних у числові дані. Це чудово працює. Я хочу зробити перетворення в іскровому контексті. І в джерелі даних є 9 категоричних стовпців. Чи є спосіб автоматизувати процес оновлення словника, щоб мати пару KV для всіх 9 стовпців?