【要約】【新人エンジニア】政府統計データで詰まったこと、気付いたこと [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
新人エンジニアがe-Statから取得したエネルギー消費データの解析において、データの不備による誤判定の危機に直面した。具体的には以下の問題が発生した。
- ・Excelの構造が複雑で、データ開始行を特定するために目視での確認を要した。
- ・「関東計」などの集計行がデータ内に混在し、最大値の取得を誤らせた。
- ・セル結合の影響により、列名(ラベル)と格納されているデータの内容が一致しなかった。
- ・欠損値(NaN)の存在により、単純な統計処理が困難であった。
// Approach
エンジニアはpandasの各種メソッドを活用し、データのクリーニングとフィルタリングを段階的に実施した。
- ・
skiprows引数を用い、目視で確認したヘッダー行をスキップして読み込んだ。 - ・
notna()を用いたBoolean indexingにより、県コードが空の集計行を排除した。 - ・
iloc(位置指定)とloc(ラベル指定)を使い分け、正確な行と列の抽出を行った。 - ・
isna().sum()を用いて、列ごとの欠損値の状況を定量的に把握した。
// Result
データのクリーニングを経て、業種別のエネルギー消費におけるトップ県を正確に特定することに成功した。
- ・農業では北海道、製造業では愛知県、情報通信業では東京都がそれぞれ1位であると判明した。
- ・「日本一」の定義は、扱う指標や業種によって異なることを定量的に示した。
- ・データ構造の理解が進み、次ステップである「人口あたりの正規化分析」への道筋を立てた。
Senior Engineer Insight
> 実務における「汚いデータ」への対処法を学ぶ好例だ。ただし、本記事の手法は「目視」に依存しており、スケーラビリティに欠ける。大規模なシステムでは、Excelの構造変化を検知するスキーマバリデーションや、集計行を自動排除するロジックの組み込みが不可欠だ。列名と中身の不一致は、ETLパイプラインにおけるデータ品質管理の重要性を物語っている。現場では、こうした泥臭い前処理をいかに自動化・堅牢化するかが、エンジニアの真の腕の見せ所となる。