国土交通省の「不動産情報ライブラリ」APIから取得した公開データをもとに、中古マンション価格の推移を可視化したプロジェクトです。Pythonでデータ取得、整形、集計、グラフ生成、Web公開用HTMLの出力までを自動化しました。
対象エリアは、首都圏(東京・神奈川・千葉・埼玉)に大阪・愛知を加えた主要6都府県です。地域別・間取り別に価格の変化を整理し、信頼性の高い公的データを、一般のユーザーにも分かりやすいコンテンツとして公開しています。
解決した課題:公開データを分かりやすい情報に変える
国や行政が公開している一次データは信頼性が高い一方で、CSVのダウンロードやAPI仕様の理解が必要です。そのため、一般のユーザーがそのまま価格トレンドを把握するのは簡単ではありません。
さらに、膨大な取引情報を手作業で集計してグラフ化するには多くの時間がかかります。新しいデータが公開されるたびに更新し続けることも、手作業では現実的ではありません。
このプロジェクトでは、データ処理と可視化のパイプラインを構築し、取得から公開までの作業を自動化しました。大量の取引データを、短時間で読みやすいグラフコンテンツへ変換できる仕組みを実現しています。
使用データ:国土交通省の不動産取引データ
データの正確性と客観性を重視し、以下の公開データソースから直接取得したデータを使用しています。
- データソース:国土交通省(MLIT)「不動産情報ライブラリ」公式API
- 対象データ:中古マンション(不動産取引価格情報)
- 処理規模:累計130万件を超える取引データから、対象エリアのデータを抽出
- 取得項目:取引価格、取引時期(四半期単位)、市区町村名、間取り、建築年など
地域別・間取り別に価格トレンドを可視化
不動産市場の価格傾向をより具体的に把握できるように、都道府県単位の平均値だけではなく、実際の検討や分析に役立つ細かな軸で可視化しました。
- 地域別(市区町村別)の可視化:都府県単位の大まかな傾向だけでなく、市区町村ごとの取引価格の推移を確認できるようにしました。
- 間取り別の可視化:1K(単身者向け)、1LDK〜2LDK(カップル・小世帯向け)、3LDK以上(ファミリー向け)などに分類し、価格中央値の推移をグラフ化しました。
- 多言語対応:日本語と英語の2言語でページを出力し、海外から不動産投資を検討するユーザーにも使いやすい形に整理しました。
技術構成と実装内容
Python、Pandas、Matplotlibを組み合わせた自動化パイプラインのアーキテクチャ図
データ取得・加工からグラフ生成、静的HTMLの出力まで、Pythonを中心とした技術スタックで構築しています。
- Python:全体の処理フロー制御と自動化
- Pandas:大規模データのフィルタリング、欠損値の処理、市区町村別・間取り別の中央値集計
- Matplotlib:凡例、軸ラベル、配色を調整した、視認性の高い折れ線グラフ画像の自動生成
- API連携:Pythonの
requestsライブラリを使った国土交通省REST APIへの接続とデータ取得
- 静的HTML出力:テンプレートエンジン(Jinja2など)を活用したHTML生成とファイル書き出し
データ取得からWeb公開までの流れ
API接続による生データ取得から、クレンジング、集計、静的HTMLの自動生成・公開までのステップ
データ取得からWebサイトで公開するまでの主な流れは以下の通りです。
- データ取得:Pythonスクリプトから国土交通省APIへリクエストを送り、対象期間・エリアの不動産取引データを取得。
- データクレンジング:不要な列の削除、異常値や外れ値の除外、間取り表記の正規化(表記揺れの統一)を実施。
- データ集計:市区町村別・間取りタイプ別に、四半期または半期ごとの取引価格の中央値を算出。
- グラフ生成:集計結果をMatplotlibで描画し、エリア別・間取り別の価格トレンドを示す折れ線グラフとして保存。
- HTMLテンプレートへの反映:自動生成したグラフ画像と市区町村別の情報をHTMLテンプレートに埋め込み。
- 静的ファイル公開:生成したHTMLと画像ファイルをWebサーバーへ配信し、ユーザーに提供。
生成した可視化コンテンツ
Pythonで処理を自動化したことで、以下のような規模の可視化コンテンツを短期間で生成できました。
- 生成したグラフ画像数:3,804点(6都府県分を一括生成)
- 対象都道府県:東京・大阪・神奈川・埼玉・千葉・愛知の主要6エリア
- カバー自治体数:対象エリア内の全317市区町村
- 間取りバリエーション:1Kから4LDK以上までの各階層別データと、エリア総合データ
このプロジェクトで実現したこと
- 信頼できる情報源の活用:行政の一次データをもとに、一般のユーザーがひと目で理解しやすいグラフコンテンツへ変換しました。
- 再現性のある自動化パイプライン:データ取得からWeb公開までをコード化しているため、新しい四半期データが公表された際も、スクリプトを再実行するだけで更新できます。
- 実用性を重視した粒度:都道府県平均だけではなく、市区町村別・間取り別に整理することで、物件購入、売却、不動産投資の判断に使いやすい情報にしました。