CSVデータクレンジング入門
CSVの品質を高めるための「データクレンジング」の基本と、当ツールでできることをまとめます。
データクレンジングとは
データクレンジング(Data Cleansing)は、データの不備・ノイズ・不整合を検出・修正・削除し、分析やシステム連携に使える状態に整える作業です。CSVファイルで最も頻繁に発生する問題は、テキスト値に潜む不可視文字、値の前後にある余分な空白、文字化けを引き起こすエンコーディングの問題、そしてキー列の重複レコードです。
データ品質が重要な場面でクレンジングは選択ではなく必須です。ID列に不可視文字が1つあるだけで、画面上では同じに見える2つの値がマッチングに失敗します。メールアドレスの末尾に空白があるとデータベースに重複アカウントが生まれます。こうした問題は目視では発見できず、後になってシステムが予想外に壊れたときに初めて表面化します。
CSVで起こる汚れたデータの種類
不可視文字
不可視文字は目に見える字形はないが文字列内にスペースを占めるUnicodeコードポイントです。主な例:
- ゼロ幅スペース(U+200B) — WebページやPDF、チャットアプリからコピーしたテキストに入り込みやすい
- ノーブレークスペース(U+00A0) — 見た目は通常のスペースと同じだが、文字列比較では別の文字として扱われる
- バイトオーダーマーク(U+FEFF) — ファイルを連結する際にBOMが中間に混入するケースで発生
- 制御文字(U+0000–U+001F) — レガシーERPやメインフレームシステムのエクスポートに含まれることがある
これらの文字はマッチング失敗・検索漏れ・インポートエラーを引き起こし、専用ツールなしでは診断が非常に困難です。CSV単体チェックで検出し、影響を受けた行を正確に特定できます。
前後の空白(トリム)
値の先頭や末尾にあるスペース・タブは、ほとんどのスプレッドシートやテキストエディタの画面上では見えません。"user@example.com"と"user@example.com "は画面では同じに見えますが、異なる文字列です。これによって:
- データベースの検索・JOIN失敗 — 末尾に空白があるためクエリが一致するレコードを見つけられない
- 同じキーを持つように見えるが、データベース制約では別レコードとして許容される重複
- 先頭スペースがソート順を変えてレポートの並び替え・グループ化が崩れる
全角・半角の不統一
日本語データでは、同じ文字が全角(a、1、!)または半角(a、1、!)で現れることがあります。複数の人が入力したデータによく起こるこの混在があると、本来一致すべき値が静かにマッチングに失敗します。インポート前にコード・IDの列を半角に統一しておくと、こうした見えない不一致を防げます。
重複レコード
行の重複やキー列(ID、メール、商品コード)の値の重複は、インポート時に一意制約違反を引き起こし、マージ時に曖昧な結果を生みます。空白や不可視文字の差による「見かけ上の重複」—画面では同じだが実際には違う値—も注意が必要です。詳しくは重複データガイドを参照してください。
エンコーディングの問題
文字化けは単なる表示の問題ではなく、文字列比較・パターンマッチング・正しいテキストを期待する後続処理をすべて壊します。他のクレンジング作業より先にエンコーディングを修正してください。文字化けしたテキストにクレンジングを適用すると、より悪い結果になります。文字化け・エンコーディング問題を参照してください。
汚れたデータが発生する原因
- WebブラウザやPDFからのコピー&ペースト — ゼロ幅スペースやノーブレークスペースを視覚的な表示なくテキストに注入する
- CRM・ERP・レガシーシステムのエクスポート — フィールドを空白でパディングしたり、内部データ表現の制御文字を含んだり、地域エンコーディングで出力したりすることが多い
- 手動データ入力 — 誤った先頭スペース、表記のゆらぎ、全角・半角混在が時間とともに蓄積する
- スプレッドシートの数式 — CONCATENATE等の関数が意図せず余分なスペースを追加したりエンコーディングを変えたりすることがある
- ファイルの結合・連結 — 正規化なしに異なるソースのファイルを合わせると、各ソースの不整合が合成ファイルに持ち込まれる
ステップバイステップのクレンジング手順
- まずエンコーディングを修正 — 文字が化けているなら文字化け復元でUTF-8に変換します。文字化けしたテキストに他のクレンジングを適用すると誤った結果が出ます。
- 形式を確認 — 形式・基本チェックを実行して文字コード・区切り・列数・空行・ヘッダー重複を確認します。データに手を加える前に構造上の問題を先に解決します。
- データ品質の問題を検出 — CSV単体チェックを実行します。不可視文字(含む行を表示)・前後の空白・重複ID・全角半角フラグを報告します。
- 修正を適用 — 「問題を一括修正」で検出された修正をすべてワンクリックで適用するか、カテゴリごとに個別に処理します。すべての修正はブラウザ内で行われ、サーバーにはアップロードされません。
- ダウンロードして確認 — クレンジング済みのCSVをダウンロードし、単体チェックを再度実行して、システムにアップロードする前に問題がゼロであることを確認します。
修正前後の例
WebページからコピーされたユーザーID列:
user_id,name U001,田中 U002,鈴木 U003 ,佐藤
2行目の「U002」の後にゼロ幅スペース、3行目の「U003」の後に通常のスペースがあります。画面では見えません。単体チェックを実行して修正を適用すると:
user_id,name U001,田中 U002,鈴木 U003,佐藤
3つのIDすべてが、データベースの検索やJOIN操作で正しくマッチングされるクリーンな文字列になります。
クレンジングすべきでないとき
検出されたすべての「問題」が実際にエラーとは限りません。一括修正を適用する前に確認してください:
- 意図的な値内の空白 — 一部の商品名や住所は正当に空白で始まったり終わったりすることがあります。トリム前に指摘された行を確認してください。
- 意図的な重複 — テーブルによっては同じキーが複数回出てきても正しい場合があります(注文明細、取引ログなど)。重複を削除する前にデータ構造を把握してください。
- 固有名詞の全角文字 — 日本語データの氏名にある全角文字は意図的で正しい場合があります。半角が期待される列(数値コード・日付・ID)にのみ正規化を適用してください。