DataRobot DataPrep(旧Paxata)で億円や万円などの表記を数値型にする方法

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

DataRobot DataPrep(旧Paxata)で億円や万円などの表記を数値型にする方法

Miogawa_0-1615278333638.png

売上などの金額における表記が日本語表記になっていて、このままだと機械学習ではカテゴリ値として認識されてしまうことがよくあったりします。カテゴリのまま学習してしまうと売上が1億の企業と1億100円の企業を全く別の値が入ったと認識してしまい精度が悪化してしまいます。今回はこれらをBIや機械学習が処理する上で相性のよい数値型に直すステップを紹介します。

前回都道府県のときもロジックを考えましたが、今回も同じようにロジックから考えていきます。

大きい分岐としては、1円単位から分割していくか、大きい単位の億円から分割していくかの二通りが考えられるかと思います。万とか億みたいに基本の単位しか漢字化されていないならどちら側からでもできるのですが、10百万とかの表記が混ざっている場合には、左側の億単位からいかないといけません。このときの注意点としては、一番大きい単位が何なのかは事前に見極めて分割を行う必要があります。DataRobot DataPrepではステップを後で入れ替えられるので、仮に1兆円とかの単位の存在に後から気づいた場合には、後でそのステップを割り込ませることもできますのでご安心ください。それでは変換処理やっていきましょう。

とりあえず邪魔な「円」を除きます。変換したい値の入ったセルをダブルクリックするとその値全体をどう変換したいかが表示されます。今回は「円」だけ削除したいので、検索を「円」で置換を空白(BLANK)にしておきます。これだけで「円」が削除されるのがプレビューでもわかります。

Miogawa_1-1615278333626.png

他にも数字部分にカンマがついている場合には同じようにカンマを事前に取り除いて起きましょう。

次は今回の中で一番大きい単位の億で分割します。

Miogawa_2-1615278333689.pngMiogawa_3-1615278333658.png

分割したい列から分割を選択すると一致正規表現長さで列を分割できます。今回はシンプルに一致から「億」で分割します。デフォルトだと3つの列ができてしまって無駄な空列が生まれてしまうので、一つ削って2列だけ生成するのと、左から右に埋めていくのではなく、右から左に分割していきたいので、右から左チェックボックスも選択しておきます。これだけで億円単位の列が抽出できたので、列名をわかりやすくしておきます(例では「億」とそのままの列にしてます。)

このステップを繰り返して行きます。今回の場合、「百万」という厄介なものもありますが、それも同じように「百万」を区切り文字に分割していけば大丈夫です。

Miogawa_4-1615278333631.png

※このとき元のデータに百万円ぴったしなので、百万円となっている場合には、1を補完しておく必要があるので注意が必要です。(基本はエクセルの表記変換を通って、百万円単位とか生成されていることが多いので、よほどのデータ文化がない限りは、1百万円となっているかとは思いますが。。。)

このまま、変換を繰り返して、万や千とかがあれば大きい順に分割して行きます。

分割が完了したらそれぞれの分割列に合わせた桁数をかけて足し合わせるだけですが、文字列からの分割だとカテゴリ値として認識されていますので、型変換を実施していきます。

Miogawa_5-1615278333657.pngMiogawa_6-1615278333685.png

変換したい列から変換数値を選ぶと数値型に変換できます。変更カラム名の部分をクリックすることによって、複数列を同時に変換できるので、該当するカラムを選択して一括で変換します。

このまま計算すると空白がある行の計算が失敗するので、空白には「0」を埋めておきます。

Miogawa_7-1615278333622.png

「円」を削ったときと同じステップですが、ここでも複数列に対して置換をすることができるので、先程数値変換したものと同じ列に対して空白を「0」で置換していきます。これで計算する準備が整いました。

足し合わせる対象の列を全て数値型に変換できれば、計算アイコンから計算式を書いていきます。

Miogawa_8-1615278333651.png

列は「@」で囲むことで変数として認識されます。各列の単位ごとに掛け算して足し合わせるだけなので、ここは直感的で簡単かと思います。

これで変換は全て完了ですが、分割した際にできた邪魔な列も多いので、見栄えを良くするために最後に必要な列のみ表示するようにします。カラムアイコンから、必要な列のみ選択するだけでそれ以外の列を非表示にすることができます。

Miogawa_9-1615278333650.png

区切りべき単位の種類によってステップが増減しますが、今回のように「億」「百万」「万」が混在している場合には、アップロードから含めて9ステップで実施することができました。

Miogawa_10-1615278333712.pngMiogawa_0-1615279069900.png

 

毎回この処理を行うのは大変かと思う方もいるかと思いますが、DataRobot DataPrepではフローをパイプライン化できたり、別のプロジェクトにコピーできたりするので、ステップだけコピーして、列名だけ微調整していくなどで簡単にこのステップを再現することもできます。

手元のデータを分析用にきれいにしましょう!

ラベル(2)
バージョン履歴
最終更新:
‎03-09-2021 05:38 PM
更新者:
寄稿者: