データクリーニングの具体的なやり方とは?処理別の手法・操作手順・判断基準を実践解説

データクリーニングの具体的なやり方とは?処理別の手法・操作手順・判断基準を実践解説

収集したデータをそのまま分析に回すと、重複や欠損、表記の揺れが原因で結果が大きく歪んでしまいます。こうした不純物を取り除き、分析に耐えうる状態へ整える作業がデータクリーニングです。本記事では、処理の種類ごとに具体的なやり方と操作手順を整理し、実務でそのまま使えるレベルまで落とし込んで解説していきます。

クリーニングは「とりあえず欠損を埋める」「目についた重複を消す」といった場当たり的な作業ではありません。どの処理をどの順番で、どこまで実施するかという判断の積み重ねが、最終的な分析品質を左右する繊細な工程です。

Excelの関数からSQL、Pythonのpandasまで、手段別の具体的な操作と、迷いやすい判断ポイントを網羅しています。自社のデータと体制に合うやり方を見つける手がかりとして、ぜひ最後までお読みください。

データクリーニングの代表的な手法と適した処理

データクリーニングと一口に言っても、対象とする問題によって取るべき処理はまったく異なります。重複・欠損・表記の揺れ・異常値・形式の不一致は、それぞれ発生原因も対処法も別物です。ここからは代表的な5つの処理を取り上げ、どのような場面でどの手法が適しているのかを、具体的なやり方とともに見ていきます。

重複データの統合:名寄せ・キー突合のやり方

同じ顧客や商品が複数のレコードに分かれて存在する状態は、集計時に件数や金額を水増しする典型的な原因になります。これを一つにまとめる作業が名寄せで、実務では「完全一致による突合」と「あいまい一致による突合」を組み合わせて進めるのが基本です。

まずは顧客IDやメールアドレスなど、一意に識別できるキーでの突合を優先し、それで拾えないものだけをあいまい一致に回すのが効率的な進め方です。氏名と住所だけで判定しようとすると、同姓同名や転居によって誤統合・取りこぼしが発生しやすいため、複数の属性を組み合わせて確度を上げます。

あいまい一致では、全角と半角の違いや「株式会社」と「(株)」のような表記差を吸収するため、突合前に表記を正規化しておく前処理が欠かせません。判定基準を緩めすぎると別人を同一視し、厳しくしすぎると同一人物を分離してしまうため、サンプルで結果を確認しながらしきい値を調整します。

データ統合とは?統合の目的や初心者向けの進め方を解説

欠損値の処理:補完と除外の使い分け

値が入っていない欠損値は、放置すると平均や合計の計算でエラーや偏りを生みます。対処の方向性は大きく「補完して残す」か「行ごと除外する」かの二択で、どちらを選ぶかは欠損の量と発生の仕方によって決まります。

欠損が全体のごく一部にとどまり、かつランダムに散らばっている場合は、行を除外しても分析結果への影響は限定的です。一方で特定の条件下でまとまって欠損しているときは、除外するとデータに偏りが生じるため、平均値や中央値、前後の値などで補完する方が無難でしょう。

補完は「もっともらしい値を人工的に作る」行為であり、埋めた事実を記録しないまま分析を進めると、後から解釈を誤る危険があります。そのため補完を行う際は、どの列をどの方法で埋めたかをログとして残し、元の欠損状態を復元できるようにしておくことを推奨します。

表記揺れの正規化:表記統一・全半角・スペースの整え方

「東京都」と「東京」、「Tokyo」と「TOKYO」のように、同じ意味を指す値が異なる文字で記録される状態が表記の揺れです。これを統一する正規化を行わないと、集計時に本来同じグループであるべき値が別々に数えられてしまいます。

実務でまず着手すべきは、機械的に処理できる全角・半角の統一と、前後の余分なスペースの除去です。次に、住所や企業名のような表記の自由度が高い項目について、変換ルールの辞書を用意して置換していきます。

正規化は一度ルールを作れば繰り返し再利用できる点が大きな利点です。揺れのパターンを発見するたびに辞書へ追記していくことで、回を重ねるごとに処理の精度が高まっていきます。

正規化とは?データベース設計で重複や不整合を防ぐ基礎から実務での活用までわかりやすく解説

異常値・外れ値の検出と処理のやり方

他の値から大きく離れた外れ値は、入力ミスのような明らかな誤りである場合と、実際に起きた重要な事象である場合の両方が考えられます。検出には四分位範囲を使った箱ひげ図や、平均から標準偏差の何倍離れているかを見る方法が広く使われています。

外れ値を見つけたら、すぐに削除するのではなく「なぜその値が生じたのか」を確認する姿勢が重要です。桁を一つ多く入力したような誤りであれば修正・除外の対象になりますが、繁忙期の突出した売上のように実態を反映した値であれば、安易に除外すべきではありません。

判断に迷う場合は、外れ値を含めた集計と除いた集計の両方を出し、結果がどう変わるかを比較すると意思決定がしやすくなります。検出の基準や処理の方針は、分析の目的に応じて柔軟に変えていく必要があります。

箱ひげ図とは?外れ値の見方やExcelでの作成方法まで徹底解説

データ形式の変換:型・単位・日付フォーマットの統一

数値であるべき列が文字列として保存されていたり、日付が「2024/1/5」と「2024-01-05」のように混在していたりすると、並べ替えや計算が正しく機能しません。データの型・単位・フォーマットをそろえる変換は、地味ながら分析の前提を支える重要な処理です。

特に注意したいのが日付と数値の扱いです。日付は内部的なシリアル値と表示形式が食い違うことがあり、単位についても「円」と「千円」が混在したまま合算すると、桁が三つずれた集計結果が生まれてしまいます。

変換の際は、元の値を上書きするのではなく新しい列に変換結果を出力し、両者を見比べて妥当性を確認してから置き換えると安全です。こうしたひと手間が、後戻りの少ない作業につながります。

実施手段別のデータクリーニングのやり方

同じクリーニング処理でも、使う道具によって得意・不得意や再現性が変わります。手軽さで選ぶならExcel、大量データの一括処理ならSQL、複雑な加工の自動化ならPythonというように、それぞれに向いた場面があるのが実情です。ここでは代表的な3つの手段の具体的なやり方を確認し、最後に選び方の指針を整理します。

Excelの関数・機能を使ったやり方

手元の数千件程度のデータであれば、Excelの標準機能だけでも多くのクリーニングが完結します。重複の削除は「重複の削除」機能、表記の統一はTRIM関数やSUBSTITUTE関数、欠損の確認はフィルターやIF関数で対応できます。

Excelの最大の強みは、処理の途中経過が画面上で常に目に見えることにあります。一つひとつのセルがどう変わったかを確認しながら進められるため、データの中身を肌感覚でつかみながら作業したい場面に向いています。

一方で、手作業の操作はそのままでは再現できず、同じ処理を翌月も繰り返すとなると手間がかさみます。繰り返しが前提の作業では、後述するマクロやスクリプトへの置き換えを検討すると効率が上がります。

Excelを活用したデータ分析の方法

SQLによる一括クリーニングのやり方

データがデータベースに格納されている場合は、SQLで直接クリーニングするのが効率的です。重複の除外はDISTINCTやGROUP BY、表記の統一はREPLACEやTRIM、欠損の置換はCOALESCEといった関数を使い、数百万件規模でも一度の問い合わせで処理できます。

SQLの利点は、同じクエリを実行すれば誰がやっても同じ結果が得られる再現性の高さにあります。クエリ自体が処理内容の記録を兼ねるため、後から「何をしたか」を追いやすく、チームでの共有にも適しています。

ただし、元のテーブルを直接書き換える処理は取り返しがつかないため、まずはSELECT文で結果を確認し、問題がないと判断してから更新系の処理に進むのが鉄則です。加工用のビューや一時テーブルを介する方法も、安全性を高める有効な手立てになります。

SQLとは?データベースの操作言語

Python(pandas)を使ったやり方

Pythonのpandasライブラリは、複雑な条件のクリーニングや、複数ファイルにまたがる処理を自動化したい場面で力を発揮します。重複削除はdrop_duplicates、欠損処理はfillnaやdropna、型変換はastypeといったメソッドが用意されており、数行のコードで一連の処理を記述できます。

処理をコードとして残せるため、同じ作業を翌月以降に繰り返す場合でも、ファイルを差し替えて実行するだけで済みます。条件分岐や外部データとの照合など、ExcelやSQLでは表現しづらい込み入った処理も柔軟に書ける点が魅力です。

一方で、コードを書くスキルが前提となるため、扱える人が限られるとブラックボックス化しやすい点には注意が必要です。誰が読んでも処理の意図が分かるよう、コメントを添えたり処理を小さな単位に分けたりする工夫が、継続的な運用を支えます。

データ分析のためのPythonを学び始める時につまずかないための6つのステップ

データ規模・体制に応じた手段の選び方

どの手段を選ぶべきかは、データの規模・処理の繰り返し頻度・チームのスキルという3つの観点から判断するとぶれません。小規模で単発の作業ならExcel、大量データの定常処理ならSQL、複雑な自動化ならPythonが目安になります。

下表に、それぞれの手段が向いている条件を整理しました。実際には一つの手段だけで完結させる必要はなく、抽出はSQL、細かな加工はPythonというように組み合わせて使うのが現実的な落としどころです。

手段

向いているデータ規模

再現性

求められるスキル

Excel

数千件程度まで

低い(手作業中心)

関数の基本操作

SQL

数百万件規模まで

高い(クエリで再現)

基本的なクエリ文法

Python(pandas)

規模を問わず柔軟

高い(コードで再現)

プログラミングの基礎

迷ったときは、まず「この作業は来月も繰り返すか」を自問してみてください。繰り返すならコードやクエリへの投資が報われやすく、一度きりなら使い慣れたExcelで素早く片づける方が合理的です。

処理の判断に迷ったときの考え方

データクリーニングで最も悩ましいのは、手法の使い方そのものよりも「どこまでやるか」という判断です。欠損を消すか埋めるか、どこからを重複とみなすか、外れ値を残すか除くか。ここからは、現場で迷いやすい4つの場面について、判断の軸となる考え方を整理します。

欠損値は削除と補完のどちらを選ぶか

欠損値への対処は、欠損の「量」と「偏り」の2軸で考えると整理しやすくなります。量が少なくランダムに散らばっているなら削除でも問題は起きにくく、量が多い、あるいは特定の条件に偏っているなら補完を検討します。

判断の本質は「欠損している事実そのものに意味があるか」を見極めることにあります。たとえば「未回答」という欠損が顧客の心理を表しているなら、それを平均値で埋めてしまうと貴重な情報を消すことになります。機械的に埋める前に、その空白が何を語っているかを一度立ち止まって考えることが大切です。

下表は、削除と補完それぞれが適した状況をまとめたものです。どちらか一方に固執せず、列ごとに最適な方針を選び分ける柔軟さを持っておくとよいでしょう。

方針

適した状況

注意点

削除

欠損が少なくランダムなとき

件数が減り偏りが出る恐れ

補完

欠損が多い・偏りがあるとき

人工的な値が混ざる点に留意

データクレンジングとは?意味と代表手法を解説!

どこまでを「重複」とみなすか:同一性判定の基準

重複の判定で難しいのは、完全に同一のレコードよりも「ほぼ同じだが少しだけ違う」レコードの扱いです。氏名は同じでも住所が微妙に異なる場合、それを同一人物とみなすかどうかで結果が変わります。

同一性の基準は、データを何に使うかという目的から逆算して決めるのが原則です。請求業務で使うなら厳密に区別すべきですが、おおまかな顧客数の把握が目的なら、多少の違いは同一とみなした方が実態に近づきます。

基準を決める際は、判定に使う属性とそのしきい値を明文化しておくことを推奨します。担当者の感覚に依存した判定は再現性を欠き、後から検証できなくなるためです。

外れ値を残すか除外するかの判断軸

外れ値の扱いは、その値が「誤りなのか実態なのか」によって判断が分かれます。明らかな入力ミスは除外・修正の対象ですが、実際に発生した極端な値は、むしろ分析で注目すべき重要な情報であることも少なくありません。

判断に役立つのが、分析の目的との照らし合わせです。全体の傾向を平均的に捉えたいのであれば極端な値が結果を引っ張るため除外を検討し、異常やリスクの発見が目的であれば、その外れ値こそが分析の主役になります。

迷ったときは外れ値を消すのではなく、フラグを立てて区別できるようにしておくのが安全な落とし方です。こうしておけば、後から「含める集計」と「除く集計」を自在に切り替えられ、判断のやり直しがききます。

修正のログ・履歴をどこまで残すか

クリーニングは元データを変える行為である以上、「何を・なぜ・どう変えたか」を残しておかないと、後から結果の妥当性を説明できなくなります。最低限、加工前のデータは別名で保存し、上書きで失わないようにしておきましょう。

残すべき履歴の粒度は、データの重要度に応じて変えれば十分です。請求や経営判断に直結するデータなら一件ごとの変更履歴まで、社内の参考集計程度なら処理ルールの記録までと、メリハリをつけると運用が長続きします。

SQLのクエリやPythonのコードは、それ自体が処理の記録を兼ねる点で優れています。手作業に頼らずコード化を進めることが、結果として履歴を残す手間を減らすことにもつながるのです。

クリーニング精度を確認する検証のやり方

クリーニングは「処理を実行して終わり」ではありません。意図したとおりに直っているか、直しすぎて必要なデータまで削っていないかを確認して、はじめて作業が完結します。ここでは、処理漏れや過剰処理を見つけるための3つの検証方法を紹介します。

件数・分布の突合で処理漏れを見つける

最も基本的な検証は、処理の前後で件数を比べることです。重複削除で何件減ったか、欠損除外で何件残ったかが想定どおりかを確認するだけでも、大きな処理ミスの多くは検知できます。

件数だけでなく、値の分布が処理前後で不自然に変わっていないかも合わせて確認すると、見落としが大きく減ります。たとえば平均値が極端に動いていれば、補完の方法が偏っていたり、消すべきでないデータを削っていたりする可能性を疑えます。

想定と実際の数値がずれていたら、そこには必ず理由があります。違和感を放置せず原因までさかのぼって確認する習慣が、検証の質を大きく左右します。

サンプル目視でルールの妥当性を確認する

数値の集計だけでは、個々のレコードがおかしな直り方をしていても気づけません。処理後のデータから数十件を無作為に抜き出し、人の目で一件ずつ確認する作業が、ルールの妥当性を担保します。

目視で特に見るべきは、自動処理が誤判定しやすい境界付近のデータです。あいまい一致で統合された顧客や、しきい値ぎりぎりで外れ値と判定された値などを重点的に確認すると、ルールの穴が浮かび上がってきます。

ここで見つかった誤りは、個別に直すだけでなく処理ルール自体の見直しにつなげることが肝心です。一件の誤りの裏には、同種の誤りが数十件潜んでいると考えて対処しましょう。

クリーニング前後で品質指標を比較する

検証をより客観的にするには、データ品質を数値で測る指標を用いるのが有効です。欠損率・重複率・表記の統一率といった指標を処理の前後で算出し、改善の度合いを定量的に把握します。

品質を数値化しておくと、作業の成果が誰の目にも明らかになり、次回以降の目標設定もしやすくなります。「欠損率を5%以下にする」といった具体的な基準を設ければ、どこまでクリーニングすれば十分かという終わりの判断にも使えます。

指標は一度きりの測定で終わらせず、毎回の処理で記録して推移を追うことをおすすめします。品質の変化を時系列で見えるようにしておくと、データ源そのものの問題にも早く気づけるようになります。

データ品質とは?品質評価項目や品質を向上させるための実務的対策を解説

繰り返し作業を効率化する自動化のやり方

毎月同じデータに同じクリーニングを施すのであれば、手作業の繰り返しは時間の無駄であるばかりか、操作のたびにミスが入り込むリスクも抱えます。処理を定型化し、自動で回せる形にしておけば、品質と効率を同時に高められるのが自動化の利点です。ここでは自動化を3段階に分けて解説します。

クリーニング処理をテンプレート化する

自動化の第一歩は、毎回行う処理の手順を固定のテンプレートとしてまとめることです。どの列にどの処理を、どの順番で適用するかを書き出しておくだけでも、作業の属人化を防ぎ、引き継ぎが格段に楽になります。

テンプレート化の本質は、毎回ゼロから考える状態を脱し、判断済みの手順をなぞるだけの状態に持っていくことにあります。処理の順序を一度しっかり設計しておけば、次回以降は中身を確認しながら淡々と実行できるようになります。

テンプレートは作って終わりではなく、新しい揺れのパターンが見つかるたびに更新していくものです。育てていく前提で運用すると、回を追うごとに精度と効率が積み上がっていきます。

定型ルールをスクリプト・クエリで再利用する

手順が固まったら、それをSQLのクエリやPythonのスクリプトとして書き起こし、再利用できる形にします。一度コード化してしまえば、翌月はデータを差し替えて実行ボタンを押すだけで、同じ品質の処理が瞬時に完了します。

コード化のもう一つの利点は、処理内容が自然とドキュメントとして残ることです。クエリやスクリプトを読めば「何をしているか」が分かるため、担当者が代わっても処理の継承がスムーズに進みます。

はじめから完璧なコードを目指す必要はありません。よく使う処理から少しずつ部品化し、それらを組み合わせていく進め方なら、無理なく再利用の範囲を広げていけます。

処理フローをパイプライン化して定期実行する

個々の処理が部品化できたら、それらを順番につなげて一連の流れとして自動実行するパイプライン化が最終段階です。データの取り込みから加工、出力までを一本の流れにまとめ、決まった時刻に自動で走らせれば、人手を介さずにきれいなデータが用意できます。

パイプライン化の真価は、人の作業時間を空けるだけでなく、処理の品質を毎回一定に保てる点にあります。手作業では避けられない「今日は急いでいたから確認を飛ばした」といったブレが起きず、いつ実行しても同じ結果が得られます。

ただし、自動で動く仕組みほど、異常が起きたときに気づきにくいという落とし穴があります。処理が想定外のデータで止まったり、おかしな結果を出したりした際に検知できるよう、件数や品質指標のチェックを流れの中に組み込んでおくことが、安定運用の鍵になります。

まとめ

データクリーニングは、処理の種類ごとに適した手法を選び、Excel・SQL・Pythonといった手段を場面に応じて使い分けることで、着実に精度を高められます。欠損や重複、外れ値の扱いに迷ったときは、データの利用目的から逆算して判断の軸を定めるのが原則でした。

そして、処理して終わりにせず件数や品質指標で検証し、繰り返す作業はテンプレート化・コード化・パイプライン化へと段階的に育てていく。この一連の流れを回せるようになれば、クリーニングは負担の大きい雑務から、分析の価値を底上げする確かな土台へと変わっていきます。

まずは自社で扱うデータの、どの処理に最も時間を取られているかを書き出すところから始めてみてください。改善の糸口は、その一覧の中にきっと見つかるはずです。

「これからデータクリーニングを実施したいけれど、何から手をつけたらいいかわからない」「データ専門家の知見を取り入れたい」という方は、データ領域の実績豊富な弊社、データビズラボにお気軽にご相談ください。

貴社の課題や状況に合わせて、データクリーニングの進め方をご提案させていただきます。

データビズラボの実績無料相談・お見積り

このブログについて

データビズラボが運営する、データの価値を最大化するためのナレッジ共有メディアです。
戦略策定から具体的な分析手法、ツールの活用術まで、データの現場で培われた実践的な取り組みから
得られた知見や気づきを発信しています。

データのことなら、
まずはお気軽にご相談ください。

データ活用に、万能の正解はありません。
貴社の業界特性や課題に合わせて、最適な進め方を一緒に設計します。