コンテンツにスキップ

文字列を数値に変換

カテゴリの文字列に 0 から始まる番号を振ります。機械学習で文字列を扱うための前処理です。

値ごとに別の列にしたいならダミー変数列の作成を使ってください。

入出力

ポート内容
入力データデータ
出力データデータ

Spark エンジンでも動きます。

行の数は変わりません。 対象列 1 つにつき 1 列増えます。

設定項目

処理対象列を選択
番号を振る列。文字列の列だけ選べます。複数選べます。
処理対象列を結果から除外する
on にすると、変換前の列を消します。既定は off です。

番号の付き方

変換結果は <元の列名>_変換後 という新しい列に入ります。 元の列は書き換わりません。

値を文字として並べた昇順に、0, 1, 2 … と振ります。 日本語の値は文字コードの順になるので、五十音順にはなりません。どの値に何番が付くかは選べません。

入力

地域
東京
大阪
東京
福岡

出力(元の列は既定で残ります)

地域地域_変換後
東京1
大阪0
東京1
福岡2

欠損値にも番号が付きます。 欠損は「欠損という 1 つの値」として扱われ、他の値と同じように番号を取ります。欠損を分けたくないときは、先に欠損値処理で埋めてください。

エラーと対処

処理対象列を選んでいない

処理対象列を選択を空のまま実行したときに出ます。

対象の列が選択されていません。

直し方 — 処理対象列を選択で列を選んでください。

選んだ列が入力データにない

前のノードで列名を変えたり列を削ったりして、選んである列がなくなったときに出ます。

対象の列が存在しません。

直し方 — 列を選び直してください。

よく使う例

1. 決定木系のモデルにカテゴリ列を入れる

カテゴリを使いたいが、ダミー変数にすると列が増えすぎるとき。

入力

地域売上
東京150
大阪120

設定

設定項目値
処理対象列を選択地域
処理対象列を結果から除外するon

出力 — 地域_変換後 と 売上 が残り、地域 は消えます。列は増えません。

2. 種類の多いカテゴリを 1 列で扱う

商品コードが 1000 種類あり、ダミー変数にすると 1000 列になってしまうとき。

入力

商品コード数量
SKU-00013
SKU-07421

設定

設定項目値
処理対象列を選択商品コード

出力 — 商品コード_変換後 が 1 列だけ増えます。1000 種類あっても列は 1 本です。

3. 複数のカテゴリ列をまとめて番号にする

地域・会員区分・流入経路をいっぺんに数値化したいとき。

入力

地域会員区分流入経路
東京一般検索
大阪優待広告

設定

設定項目値
処理対象列を選択地域、会員区分、流入経路

出力 — 地域_変換後 会員区分_変換後 流入経路_変換後 の 3 列が増えます。

4. 変換前と変換後を並べて確かめる

どの値に何番が付いたかを目で見て確かめたいとき。

入力

会員区分
一般
優待
休会

設定

設定項目値
処理対象列を選択会員区分
処理対象列を結果から除外するoff(既定)

出力 — 会員区分 の右に 会員区分_変換後 が並ぶので、対応をそのまま読み取れます。

会員区分会員区分_変換後
一般0
優待2
休会1

入力に出てきた順ではありません。 文字コードの昇順(一 → 休 → 優)で振られるので、優待 が 1 ではなく 2 になります。番号を自分で決めたいときは、代わりに条件に応じて値を列に挿入を使います。

関連