CSVデータの入力ミスを瞬時に検出!pandasで欠損値をチェックする方法

先日大量のデータの入ったCSVファイルを渡されたのですが、処理を作ってもうまく処理できずエラーが発生してしまい、怒りが爆発してプログラムを見直していたのですが、最終的に判明したのはデータの入力なし・・・そんなことあるのかよ😢

そんな感じの悲劇が2度と起きないようにするための簡単コードをメモっておきます。

データの入力ミス(入力忘れ?)を検出するコード

CSVファイルを開いて各行をsplit()していくのもいいのですが、今回はpandasを使用しました。こっちのほうが記載が少ないですしね。ライブラリは以下のようにインストールしておきます。

$ pip install pandas

そして、カウントするプログラムは以下のような記述でOKです。CSVファイルの読み込み後にdata.descrive()を使用してもいいのですが、データ数が多いと見るだけでも大変なので、今回はデータのない箇所の数だけを返してもらうことにしました。

import pandas as pd

def calculate_missing_values(file_path):
    # ファイルを読込
    data = pd.read_csv(file_path)    
    # 各列の欠損値の数を計算
    missing_values_count = data.isnull().sum()
    return missing_values_count

おわりに

pandasは強力すぎて死ねる。未来に同じことが起きませんように…

/* -----codeの行番号----- */