私はIpythonノートブックを使用してpysparkアプリケーションを操作しています。収入が5万人の範囲に収まるかそれ以上かを判断するための多数のカテゴリ列を含むCSVファイルがあります。すべての入力を使用して分類アルゴリズムを実行し、収入の範囲を決定したいと思います。マップされた変数に変数のディクショナリーを作成し、マップ関数を使用して変数を処理する数値にマップする必要があります。基本的に、モデルの実装に取り掛かれるように、データセットは数値形式にする必要があります。
データセットには、教育、婚姻状況、労働者階級などのカテゴリ列があります。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)
これは、カテゴリデータを数値データに変換するために通常のpythonで記述したコードです。正常に動作します。スパークのコンテキストで変換を実行したい。また、データソースには9つのカテゴリ列があります。辞書の更新プロセスを自動化して9列すべてにKVペアを設定する方法はありますか?