CSV 内の重複行を削除する方法
ファイルを CSV クリーナーにロードし、最初に空白をトリミングしてから、重複する行を削除します。各行の最初の出現が保持され、その後のコピーは削除されるため、保持するデータの順序は変わりません。
これら 2 つのステップの順序が重要です。末尾のスペースだけが異なる 2 つの行は、コンピュータにとっては重複ではないため、トリミングする前に重複を排除すると、両方の行が所定の位置に残り、ジョブが正常に完了したと報告されます。
「同一の」行が重複排除を行っても生き残る理由
トリミングは、これらの最初と最後に直接対処します。他のものはユーザーによる決定が必要です。そのため、それらは黙って正規化されません。たとえば、大文字と小文字を区別するのは電子メール アドレスには正しく、製品コードには間違っています。また、ツールはどの列がどれであるかを判断できません。
- 末尾または先頭のスペース。スプレッドシートでは目に見えないため、比較の際に決定的になります。
- 大文字と小文字の違い。 ann@example.com と Ann@example.com は、同じメールボックスであっても、異なる文字列です。
- 違う引用。 「Smith, John」と Smith\, John は同じ値を保持できますが、解析する前にバイトごとに異なります。
- 非改行スペース。 Web ページまたは PDF からコピー&ペーストすると、通常のスペースが U+00A0 に置き換えられることがよくありますが、異常には見えません。
- 末尾の空の列。 1 つのエクスポートでは 4 つのフィールドが書き込まれ、別のエクスポートでは 4 つのフィールドと末尾の区切り文字が書き込まれます。
機能する順序
これらの各ステップは、最後の 20 回の操作まで個別に元に戻すことができるため、1 つ試して元に戻すのにコストはかかりません。
- ファイルをロードし、区切り文字と列数が正しいことを確認します。 1 つの列として解析されたファイルの重複排除は何も役に立ちません。
- すべてのセルの空白をトリミングします。
- エクスポートに空の行が含まれている場合は、それらが単一の保持された空白に折りたたまれないように、空の行を削除します。
- 重複した行を削除します。
- 前後の行数を確認してください。違いは重複が何個あったかです。
重複キーではなく行全体の重複
これにより、すべての列で同一の行が削除されます。これは、キーを共有する行を削除することと同じではありません。
同じ顧客が異なるサインアップ日で 2 回表示される場合、それらは重複行ではなく、たまたま名前を共有した 2 つの異なるレコードです。削除することはデータを削除することになり、ツールは推測に基づいて削除することはありません。
キーによって重複を排除するには、キーを定義する列へのエクスポートを減らし、それを重複排除し、その結果をルックアップ リストとして使用します。または、スプレッドシートまたはデータベースで結合を実行します。この種の決定はそこで行われます。
単一列の値の重複排除
実際の問題がテーブルではなく、電子メール アドレス、SKU、URL などのリストである場合は、テキスト ツールキットを使用する方が早い方法です。行の重複を排除し、トリミングし、並べ替えます。また、ファイルではなくペーストを必要とします。
ここでも同じ順序付けルールが適用されます。最初にトリムし、次に重複を排除します。
実用的な例: 3 つのエクスポートからマージされたメーリング リスト
3 つのエクスポートは、名前、電子メール、ソース列を含む 4,812 行の 1 つのファイルに連結されています。一部の連絡先は複数のソースに含まれており、ファイルはコピー&ペーストで組み立てられているため、一部の行の末尾にスペースが含まれています。
重複をすぐに削除すると、118 件が削除されたと報告されます。重複する 3 つのリストに対して、疑わしいほど少ないです。
- 重複排除を元に戻します。
- すべてのセルの空白をトリミングします。
- 重複した行を再度削除します。
- 行数を元の行数と比較します。
結果: トリミングによって実際の重複が同一になるため、2 回目のパスでは最初のパスよりも大幅に多くの行が削除されます。電子メール アドレスは共有しているが、Source 列が異なる行は正しく存在し続けます。これらは同一の行ではなく、どちらの Source が優先されるかはツールの判断に委ねられます。
ツールを開く
最初の行を保持したまま、すべての列で同一の行を削除します。 2 つの類似した記録のうちどちらを保持するつもりだったのかは推測されません。
これでカバーされないもの
- 行全体の重複のみが削除されます。キー列による重複排除は、このツールでは実行できません。
- 大文字と小文字は重要です。 ANN@example.com と ann@example.com は 2 行として保持されます。
- 最初に出現したものが保持されます。最後を保持するという選択肢はありません。
- ファイル全体はメモリ内に保持され、50 MB が上限となります。
- 元に戻すことができるのは、最後の 20 操作までです。
- プレビューには最初の 100 行のみが表示されるため、スクロールではなく行数で結果を確認してください。