【初心者向け】表記揺れ・空欄・単位ズレ…その前処理、Pythonなら一瞬で終わります

【初心者向け】表記揺れ・空欄・単位ズレ…その前処理、Pythonなら一瞬で終わります データ分析入門

はじめに:「あれ、またエラー?」“データ前処理のあるある”に疲れていませんか?

  • あれ?空欄セルがあるせいでピボットがバグってる
  • “YouTube”と“Youtube”で集計が分かれた…また置換か
  • 単位が異なるデータが混在していて、合計が意味不明…(“12.5%”と“0.125”など)
  • “2024/4/5”と“5-Apr-24”が混在してて日付変換が地獄

Excelでこんな経験、一度や二度じゃないはずです。
一見きれいに整っているデータ。でも、実は中身がバラバラで、いざ集計や分析をしようとすると途端にエラーの嵐。

データ分析の第一歩である「前処理」
その奥深さと面倒くささに、心が折れそうになったこと、ありませんか?

私自身、広告代理店で日々クライアントのデータと向き合う中で、前処理作業に想像以上の時間が取られてしまうことに何度も直面してきました。
でも、そんな「面倒な作業」こそ、Pythonなら驚くほど簡単に終わるんです。

なぜ“前処理”が面倒なのか:Excelの「人間的な正しさ」と「機械的な違い」

前処理とは、簡単にいえば「データを分析可能な状態に整える作業」です。

しかし、現場で使うデータには以下のような“人間なら分かるけど、機械は分からない”問題がよく発生します。

現象問題になる理由
表記揺れ「YouTube」vs「Youtube」同じ意味でも機械は別物として認識
空欄「空白セル」や「-」など集計関数が正しく働かない
単位のズレ「10,000」 vs 「10k」 vs 「1万円」数値として計算できない
データ型の不一致数字に見えるが文字列として記録並び替えや集計ができない

このような問題に対し、人間が1セルずつ手作業で修正しているという現場がいまだに多いのが現実です。

体験談①:空欄セルを手作業で埋めていた、あの頃

実際、筆者も広告代理店での分析業務において、表記揺れや空欄、単位違いに何度も苦しめられました

特に初期の頃は、「この分析を出すにはまずデータの掃除から…」と、1〜2時間が前処理に費やされることも。

そして、一見データが正しく前処理できているように見えたとしても、実際に集計してみると思ったようにExcelが動いてくれないことも多々ありました。

そのときは「こういう作業も仕事のうち」と思っていましたが、ある日ふと、「毎回同じことしてるな?」と気づきました。

そして、Pythonに出会ったのです。

なぜPythonなのか?Excelでは“型化”できないから

Excelも強力なツールですが、以下のようなことを繰り返しやるのは苦手です。

  • 表記の統一(例:「Youtube」を「YouTube」に直す)
  • 数値の標準化(例:「100万」や「100k」をすべて100,000に直す)
  • 空欄セルの一括補完または削除

これらはルールに従って処理する、つまり“型化”する作業なので、Pythonの得意分野。

Pythonなら、こんな感じで一発です

例えば、以下のような表記揺れがあったとします。

媒体名
Facebook
facebook
FB
フェイスブック

Pythonを使えば、以下のようにサクッとコピペで統一可能です。

表記揺れを統一する方法
import pandas as pd

df = pd.read_csv('ファイル名.csv')

replace_dict = {
    'facebook': 'Facebook',
    'FB': 'Facebook',
    'フェイスブック': 'Facebook'
}

df['統一したい媒体名'] = df['統一したい媒体名'].replace(replace_dict)

同じように、例えば「100万」や「100k」といった数値の単位が異なるセルをすべて100,000といった単位の直す場合は、以下のような処理で、データを標準化できます。

異なるデータ単位を標準化する方法
import pandas as pd

df = pd.read_csv('media_data.csv')

# 単位付きの金額を標準化
def clean_price(price):
    if isinstance(price, str):
        price = price.replace(',', '')
        if '万' in price:
            return float(price.replace('万','')) * 10000
        elif 'k' in price.lower():
            return float(price.lower().replace('k','')) * 1000
    return float(price)

df['売上'] = df['売上'].apply(clean_price)

同じように、膨大なデータの中から、空欄セルを一括補完または削除したい場合は、以下のような処理でOKです。

異なるデータ単位を標準化する方法
import pandas as pd

df = pd.read_csv('media_data.csv')

# 空欄を0にする or 削除
df = df.fillna(0)  # 補完
# または
df = df.dropna()   # 削除

そして、Python上で、上記のような前処理をしたcsvファイルは、以下のコードを打ち込むことで、
簡単に「前処理済み」のcsvファイルとして、再度出力することが可能です。

前処理済みのcsvファイルをPythonから取り出す方法
df.to_csv("output.csv", index=False)

フォルダ内に「output.csv」というファイルが新たに作成されているはずです。

体験談②:初めてPythonで前処理したときの“あっけなさ”

私自身、Pythonに普段扱っているcsvファイルを読み込み、
前述のコードをコピペしただけですが、、

初めてこのコードを動かしたとき、感動しました。

「え? これだけで終わり?」「さっきまで手作業で直してたの、全部自動じゃん…」と。

特に、空白セルの処理が一瞬で終わったのは衝撃でした。

何かとミスが起こる手作業の入力ですが、Pythonで一度コードを入力してしまえば、以降はcsvファイルをPythonに読み込ませ、あとは実行ボタンを押すだけ。
一瞬で前処理が完了したcsvファイルに変換することが可能になるのですから、、

“前処理”は地味だけど、業務効率が爆速に変わる

Pythonによる前処理を覚えるだけで、以下のような恩恵があります。

  • データを“分析できる状態”に一瞬で整えられる
  • コードとして型化できるので、毎回コピペで再利用可能
  • Excelの作業を自動化できるので、分析に集中できる

よくあるQ&A(初心者向け)

Q1:Pythonを触ったことがないけど大丈夫?

本記事で紹介したコードはすべて“コピペでOK”。
環境構築はGoogle Colabを使えば3分で終わります。

詳しくはこちらの記事をお読みください! 
📎【超初心者向け】5秒でできるPython環境構築ガイド【Google Colab編】

Q2:Excelとどっちが便利?

ルーティン処理やデータ整形は圧倒的にPythonが楽です。
分析部分はExcelの方が慣れている人も多いので、使い分けがベストです。

おわりに:前処理でつまずくあなたに伝えたいこと

データ分析は「分析そのもの」より、「整えて読み込める状態にすること」の方が時間がかかります。

でも、そこを自動化できれば、分析の本質的な部分に集中できるようになります。

「Excelだけでいい」と思っている人こそ、“Pythonなら一瞬で終わる”前処理を、ぜひ一度体験してみてください。

そして、Pythonを一度触ってみて「意外とできるかも!」と感じたら、、
Excelではできない、より高度なデータ分析にもチャレンジしてみるときっと現業の分析深度をさらに深められるかもしれません。

編集長の小言

ちなみに、近年よく叫ばれる「AIを活用した作業効率化」ですが、PythonはそのAI開発に広く使われている言語です。

(株)パナソニックでは、AIを活用することで「年間18.6万時間の業務時間削減に成功した」といった事例も生まれています。(▶️ 参照記事

そんな事例と比較すると些細なことですが、こういった小さな作業効率化をとっかかりに、現場レベルで作業を効率化する意識は、社会的にみても高めるべき意識なのかもしれません。

コメント

タイトルとURLをコピーしました