データとスプレッドシート · CSV クリーナー
重複行の削除の仕組み: 完全一致、空白文字、および大文字小文字の区別
· 仕組み
csv データクリーニング が重複しています
2 つの行は同一に見えても、バイトごとに一致しない場合があります。この投稿では、クリーニング ツールにとって「重複」が何を意味するか、空白、大文字と小文字、書式設定によって誤った不一致がどのように作成されるか、重複除外で意図したものをキャッチできるようにデータを準備する方法について説明します。
「重複を削除」すると明らかな繰り返しが残る - 末尾のスペースまたは大文字によって 2 つの行が異なる理由
連絡先のエクスポートでは、1 つの電子メールがスペースで終わっているか、1 つの姓が大文字を使用しているにもかかわらず、同一に見える 2 つの行を表示できます。複製ボタンは人間の類似性を適用しません。出荷されたページでは、すべてのセルの完全な文字列値が比較されますが、その時点では大文字と小文字と空白が依然として重要です。
これは、一見明らかな繰り返しが最初のクリック後に残る理由を説明しています。このツールは、より危険な決定を回避しています。つまり、大文字と小文字を変更したり、選択したフィールドを無視したりすると、関連しているようにしか見えないレコードが結合される可能性があります。ソースを確認し、実際に必要な正規化を選択し、編集後に正確な削除を再実行します。
完全一致の比較対象 - すべてのフィールドとすべての文字 (非改行スペースや浮遊 BOM バイトなどの目に見えないものを含む)
各行は、そのすべてのセルから構築された ID を受け取ります。この実装では、正当な CSV テキストではない null 文字でそれらを結合し、カンマを含む 1 つのセルが 2 つの別々のセルと衝突するというよくある間違いを回避します。 2 番目の同一の ID はスキップされます。最初の行は変更されずに保持されます。
アウトラインでは、あたかもすべてが特別な扱いを受けるかのように、目に見えない非改行スペースと浮遊 BOM バイトについて言及しています。 JavaScript トリミングでは、[トリミング] を選択すると周囲の Unicode 空白を削除できますが、パーサーの明示的な BOM ルールはファイルの先頭の U+FEFF のみを削除します。すべてのセルをスキャンして任意の隠れバイトを探すわけではありません。
正確な比較は完全なセル文字列をカバーします。先頭のファイル BOM のみが特別に削除されます
順序は重要です。空白をトリミングすると、すべてのセルの先頭と末尾の空白が削除されます。一方、空白を折りたたむと、内部の空白が 1 つの通常の空白に変わります。重複を削除する前にいずれかを適用すると、以前は個別の行が等しくなります。元の文字列が異なるため、最初に削除を実行すると両方が保持されます。
パネルは、大文字と小文字の折りたたみ、Windows-1252 の修復、または Unicode 正規化を公開しません。基礎となるライブラリには大文字と小文字を区別しない比較のオプションがありますが、ルートはデフォルトの正確な関数を呼び出します。したがって、このページが大文字と小文字またはエンコーディングを標準化しているという主張は、訪問者が実際に使用できるコントロールを超えることになります。
最初に空白をトリミングまたは折りたたむ。パネルは大文字と小文字または従来のエンコーディングを正規化しない
行全体の平等性は、1 人の顧客を識別することと同じではありません。電子メールを共有しているが、タイムスタンプが異なる 2 つの行は、少なくとも 1 つのセルが異なるため、両方とも保持されます。ライブラリは選択された列を比較できますが、公開された重複ページはキー列セレクターを公開しないため、そのペアを判断できません。
これは、欠けている魔法のトリックではなく、貴重な境界です。最新のレコードの選択、フィールドの結合、またはエイリアスを 1 人の人物として扱うには、ビジネス ルールが必要であり、多くの場合、監査証跡が必要です。これらの競合をレビュー用にエクスポートするか、まったくの重複として偽装するのではなく、宛先システムの文書化されたマージ ワークフローを使用します。
順序と存続 — 重複が削除されたときにどのコピーが保持されるか、およびそれが「最終更新」データにとって重要である理由
完全な重複が発生した場合、最初に出現したものが存続し、後のコピーは削除されます。残った行は元の順序を維持します。新しいバージョンが後で登場しても、1 つのフィールドでも異なる場合、それは重複ではなく残ります。セル レベルでバイトごとに等しい場合、どちらかのコピーを保持すると同じデータが得られます。
行順序がセル外の出所を記録する場合、ファーストコピー ルールは依然として操作上重要です。クリーンアップする前に未変更のエクスポートを保持し、各アクションの後にカウントを検査します。 ToolAcre の元に戻すスタックは、現在のタブに 20 件の変換を保持しますが、セッションが閉じられた場合は、ダウンロードされたオリジナルが永続的な参照となります。
実用的な例 — ほぼ重複した連絡先のエクスポート。正規化されているため、正確な重複除外によってそれらが検出され、人間によるレビューがまだ必要な行がリストされています。
Ada@example.com を使用して小規模なテストを構築します。1 行に Ada、2 番目にまったく同じ 2 つのセル、3 行目に ada@example.com と Ada の後にスペースを入れます。完全に削除すると、2 行目のみが削除されます。トリミングにより末尾のスペースが削除されますが、小文字の電子メールによって 3 行目が区別されたままになります。
その結果によって、機械的な確実性と人間の判断が区別されます。システム内でアドレスの大文字と小文字が区別されないことがわかっている場合は、そのルールを他の場所に適用して文書化してください。クリーナーの証拠はより単純です。保持された値を変更することなく、同一の行配列が最初に出現するまで削減されることを証明できます。
これでカバーされないもの — あいまい一致、タイプミスの許容、競合するレコードのマージ
ファジーな名前、タイプミスの許容、発音の一致、および競合のマージは、この操作の対象外です。 「Robert」と「Bob」が 1 人の人物を指す可能性があることを認識せず、2 つのアドレスの類似性をスコアリングしません。これらの手法では誤検知が発生する可能性があり、フラット エクスポートでは使用できないコンテキストが必要になります。
キー列の重複排除も、下位レベルの関数でサポートされているにもかかわらず、このページにはありません。記事では、制御のない潜在パラメータではなく、読者が使用できるルートを説明する必要があります。 ID 解決には、一致証拠と生存ルールが表示される専用のレビュー プロセスを選択します。
重複排除は、その前の正規化と同等の効果しかありません — ToolAcre CSV Cleaner の重複削除が、エンコーディングとヘッダーの修復後にどのように適合するか
ToolAcre の信頼できるシーケンスは検査され、選択された空白が正規化されてから、正確な繰り返しが削除されます。エンコーディング修復と自動ヘッダー修復は隠れた準備段階ではありません。パーサーは先頭の UTF-8 BOM を削除し、区切り文字を検出して構造上の問題を報告します。破損した文字エンコーディングは再解釈されません。
削除後、ダウンロード前に行数を比較し、残っているものをプレビューします。消えたものは、当時存在していた文字列の下のすべてのセルで同じであることが証明されました。残っているものには正規に近い重複が含まれている可能性があり、それらの不確実な記録を保持しておくほうが、思い込みに基づいて顧客データを黙ってマージするよりも安全です。