データにNullが多かったらフィールドごと除外したい。そんな時は動的セレクトツールが使えます。

2020.03.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、データインテグレーション事業本部プロダクト営業部プリセールススペシャリストの兼本です。

データ分析をする際、読み込んでみたらNull値ばかりで使えないデータを除外したいときありませんか? そんなときは動的セレクトツールが使えるかもしれませんよ。

Null値を含むレコードを除外する

まずは基本編です。単にNull値を含むレコードを除外したいときはフィルタツールを使用して、以下のような条件を設定することでNull値をもつレコードをフィルタすることができます。

簡単なワークフローの例:

読み込んだデータのageフィールドのデータは、全体の88.74%がNull値です。

フィルタツールでNull値を除外します。

これで、Null値を含むレコードを除外することができました。

Null値を含むフィールドを除外する

Null値を含むフィールドをすべて除外するときはセレクトツールを使います。例えば以下のワークフローで読み込んだデータにはField34~Field45という名称のNull値しか持たないフィールドが含まれています。

読み込んだデータ:

明らかに不要なフィールドであるとわかる場合は、セレクトツールを使用して、対象のフィールドを除外することができます。 この場合は、プロパティペインでフィールドField34~Field45の先頭にあるチェックを外します。

これで不要なフィールドを除外することができました。

Null値を含むフィールドを動的に除外する

先の方法は、明らかに除外できるフィールドが確定している場合は有効ですが、Null値の割合が多いかどうかが、データを見るまで分からない場合があります。
例えば、不特定多数の予測パラメータとして使いたいフィールドがあり、Null値を多く含む場合は事前に不要なフィールドを除外したい場合です。

このような場合、動的セレクトツールを使用することで、動的に使用するフィールドを決めることができます。

サンプルとして作成したワークフローは以下の通り。動的ワークフローは特定の条件に基づいてフィールドを選択することができるため、前処理で条件式で使用するデータを作成しています。

今回のサンプルでは、各フィールドのデータにNull値が含まれている割合を調べ、Null値が 80%よりも多い場合は、そのフィールドを除外します。
データがNull値かそれ以外かを知る簡単な方法として、基本データプロファイルツールが使えます。

基本データプロファイルツールを使用すると、各フィールドに関する様々な情報を確認することができます。 例えば、ageフィールドのNullsには、そのフィールドに含まれているNull値の数が、NonNullsにはNull値以外の数が出力されています。

このデータをクロスタブツールでピボットします。グループキーとしてFieldNameを指定します。

次にセレクトツールで不要なフィールドを削除します。

フォーミュラツールを使用して、以下の計算式を実行することでフィールドごとのNull値の割合を計算することができます。

もうひとつフォーミュラツールを配置して、Null値の割合が80%よりも多い場合はフィールド名に「_removeme」という値を付与し、その結果を「NewFileldName」フィールドに格納しておきます。

動的リネームツールを使用して、削除したい(=Null値を多く含む)フィールドの名称を変更します。(実際にはすべてのフィールド名を置き換えています)

最後に動的セレクトツールを配置し、モードとして「式を使用して選択」を指定し、フィールド名に「_removeme」という文字列が含まれている場合はフィールドを除外する式を作成します。

これで、Null値が80%よりも多く含むフィールドを除外することができました。

おわりに

いかがでしたか。今回は動的セレクトツールを使用して不要なフィールドを動的に除外する処理をご紹介しました。
動的入力ツールや動的リネームツールをうまく利用すると、さまざまな処理を作成することができますので、ぜひ皆さんもこれらのツールを活用してみてください。

以上、最後まで読んでいただきありがとうございました。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400