重複行の削除

Tableau Prep Builder バージョン 2024 1 以降、および Tableau Cloud の Web 上でサポートされています。

重複データは、データの品質に影響をもたらし、予測結果にバイアスを生じさせ、ストレージ容量を浪費します。重複を削除すると、各値が一意となり、データが正確に表現されます。重複を削除するための最初のステップは、データ内の重複行を特定することです。重複を特定したら、ワークフローから重複を削除できます。

重複の特定と削除

Tableau Prep は、他行に同じ値が少なくとも 1 つある行を重複として特定します。

重複行を特定して削除するには

  1. (オプション) Excel およびテキスト ファイルの場合、[入力] ステップをクリックし、[ソース行番号] フィールドを追加して、元のデータ ソースで行を並べ替えることができます。詳細については、「ソース行番号フィールドのフローへの追加」および「計算フィールドの並べ替え順序」を参照してください。
  2. 入力ステップまたは出力ステップ以外のステップをクリックします。
  3. 重複する行を特定します。
    • すべてのフィールドの重複行を特定するには、ツールバーから [重複行の特定] をクリックします。
    • 特定のフィールド全体で重複行を特定するには、1 つまたは複数のフィールドを選択し、[重複行の特定] をクリックします。必要に応じて、プロファイル ペインで、選択したフィールドから [その他のオプション] メニューをクリックし、[重複行の特定] を選択します。

    計算フィールドが作成され、[変更内容] ペインに一覧表示されます。計算フィールドには、重複行が存在しているフィールドの説明と名前が表示されます。データ グリッドには、どの行が一意で、どの行が重複しているかが表示されます。

    次の図は、[地域][項目タイプ] の2 つのフィールドを選択して、選択したフィールドのみに存在する重複行を特定した結果を示しています。

    ソース行番号が使用可能な場合は、行の順序の並べ替えに使用します。それ以外の場合、行はテーブル スキーマの最初のフィールドに基づいて並べ替えられます。計算フィールドの値を変更するには、計算を直接編集するか、独自の計算を作成します。「計算フィールドの並べ替え順序」を参照してください。

  4. 重複行を評価するには、[重複する行はありますか?] フィールドまたは [データ グリッド] で [重複] または [一意] をクリックします。
  5. 次の図は、すべてのフィールドにまたがる重複行を示しています。

    次の図は、フィールド [地域][項目タイプ] のみに存在する重複行を示しています。

  6. 一意の行のみをフィルターして保持するには、[データ グリッド] または [重複する行はありますか?] フィールドで [一意] をクリックし、ツールバーから [保持] を選択します。必要に応じて、[データ グリッド] または [重複する行はありますか?] フィールドで [一意] をクリックし、右クリックして [保持] を選択します。

    [重複] > [除外] の順に選択して、データの重複をフィルターすることもできます。この操作を実行すると、[一意] および [保持] を選択した場合と同じ結果が生成され、どの行が除外または保持されるかには影響しません。

    [変更内容] ペインにフィルターが作成され、一意の行のみが保持され、重複する行が除外されることを示します。

  7. [重複する行はありますか?] 計算フィールドで、[その他のオプション] メニューをクリックし、[削除] を選択します。

    フローを実行して出力を作成すると、重複行が削除されます。

    : サンプリングされたデータを調整する場合は、[重複する行はありますか?] 計算フィールドを削除しないでください。

サンプル データの重複

重複行はサンプリングされたデータに表示されない可能性があるため、モデルにバイアスが生じる可能性があります。

サンプリングされたデータの重複行に対処するには:

  1. サンプリングされたデータを調整する場合は、[重複する行はありますか?] 計算フィールドを削除しないでください。これにより、入力ステップでサンプル サイズを変更したり、サンプル データを調整したりするオプションが提供されます。
  2. サンプル サイズを調整して、行選択のためにできるだけ多くのデータを読み込みます。「データ サンプルのサイズの設定」を参照してください。
  3. サンプルのサイズによっては、サンプリングされたデータに重複が表示されない場合があります。一意の行に対して [保持] オプションを使用すると、サンプリングされたデータに表示されていない場合でも、重複行を削除できます。

計算フィールドの並べ替え順序

既定では、複数の行に同じ値が含まれている場合、それらは最初のフィールド、または使用可能な場合はソース行番号によって並べ替えられます。これらのフィールドは、最初の行を一意として特定し、残りの行を重複として特定するために使用されます。フィールドの並べ替え順序を変更すると、どの重複行を一意として特定するかを指定できます。並べ替え順序を変更するには、計算を編集し、ORDERBY フィールドを変更します。

例:

IF ({PARTITION [Field1], [Field2], [Field3]: { ORDERBY [FieldName] ASC: ROW_NUMBER() } } = 1) THEN 'Unique' ELSE 'Duplicate' END

Excel およびテキスト ファイルの場合、ソース行番号フィールドを追加することで、元のデータ ソースで並べ替えることができます。

例:

IF ({PARTITION [Source Row Number], [Field1], [Field2], [Field3]: { ORDERBY [Source Row Number] DESC: ROW_NUMBER() } } = 1) THEN 'Unique' ELSE 'Duplicate' END

詳細については、「ソース行番号フィールドのフローへの追加」を参照してください。

独自のフィルター計算を作成し、重複を検出して削除

複数のフィールドにまたがる独自のフィルター計算を記述し、重複を検索して削除することができます。

次のフィルター計算では、True を返す結果のみが返されます。この計算では、PARTITION に使用されるフィールドに基づいて True または False が返されます。

{PARTITION [Field1], [Field2], [Field3]: { ORDERBY [Field1] DESC: ROW_NUMBER() } } = 1

CASE または IF を使用した重複した計算の特定

計算エディターでは IF または CASE 関数を使用できます。例:

CASE {PARTITION [Field1], [Field2], [Field3] : { ORDERBY [[Field3]]: ROW_NUMBER() } } = 1 WHEN TRUE THEN 'UNIQUE' ELSE 'DUPLICATE' END

IF ({PARTITION [[Field1]], [[Field2]], [[Field3]]: { ORDERBY [[Field3]] DESC: ROW_NUMBER() } } = 1) THEN 'Unique' ELSE 'Duplicate' END

フィードバックをありがとうございます。フィードバックは正常に送信されました。ありがとうございます!