Saya menggunakan notebook Ipython untuk bekerja dengan aplikasi pyspark. Saya memiliki file CSV dengan banyak kolom kategorikal untuk menentukan apakah pendapatan berada di bawah atau di atas kisaran 50k. Saya ingin melakukan algoritma klasifikasi mengambil semua input untuk menentukan kisaran pendapatan. Saya perlu membuat kamus variabel untuk memetakan variabel dan menggunakan fungsi peta untuk memetakan variabel ke angka untuk diproses. Pada dasarnya, saya ingin dataset saya dalam format numerik sehingga saya dapat bekerja pada penerapan model.
Dalam kumpulan data, ada kolom kategorikal seperti pendidikan, status perkawinan, kelas pekerja dll. Dapatkah seseorang memberi tahu saya cara mengubahnya menjadi kolom angka di 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}
Saya membuat kamus sampel dengan pasangan nilai kunci untuk kelas kerja. Tapi, saya tidak tahu cara menggunakannya di fungsi peta dan mengganti data kategorikal dalam file CSV dengan nilai yang sesuai.
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)
Ini adalah kode yang saya tulis dengan python normal untuk mengubah data kategorikal menjadi data numerik. Ini bekerja dengan baik. Saya ingin melakukan konversi dalam konteks percikan. Dan, ada 9 kolom kategori dalam sumber data. Apakah ada cara untuk mengotomatiskan proses pembaruan kamus untuk memiliki pasangan KV untuk semua 9 kolom?