【要約】東京都の昼間人口データをDuckDB×Pythonで前処理する [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
オープンデータ特有の品質問題が課題。
- ・CSV内に注記行が混入。
- ・年度間で列名やデータ構造が不一致。
- ・全角・半角の表記ゆれ。
- ・ファクトとディメンションが未分離。
// Approach
以下の3ステップで解決する。
1.pandasによるクレンジング
- ・
isin()やnotna()で注記行を除去。 - ・
rename()で年度間の列名を統一。
2.データ構造の正規化
- ・ファクトとディメンションに分割。
- ・
year列を付与し、年度間の縦結合を可能にする。
3.DuckDBによる管理
- ・
read_csv_auto()で直接クエリを実行。 - ・SQLベースで再現性の高い集計環境を構築。
// Result
分析に適した正規化済みデータセットの構築。年度を跨いだ比較が可能になる。BIツール等での利用も容易になる。
Senior Engineer Insight
> 実戦的なETLの雛形。DuckDBの採用は、環境構築コストと分析速度のバランスにおいて極めて合理的。ただし、オープンデータの仕様変更に対する「防御的プログラミング」が不可欠。マッピング定義の明示化は、運用フェーズでのデバッグコストを下げ、再現性を担保する優れた設計判断である。