不動産DX記事まとめ

不動産取引価格情報取得APIを利用する

作成者: 片山 幹健|24/03/04 23:00

国土交通省の不動産取引価格情報取得APIの利用方法について案内しています。

不動産取引価格情報検索について

国土交通省が提供する土地総合情報システムです。不動産の取引価格、地価公示・都道府県地価調査の価格を検索してご覧になることができます。

 

国土交通省 土地総合情報システム

https://www.land.mlit.go.jp/webland/

不動産取引価格情報検索は、不動産売買においてどんな物件がどのくらいの取引価格で売買されているかという相場を知らせるために、国が不動産取引価格アンケートに回答してもらう形で不動産の取引データをデータベース化し、公開しています。

以下のように、エリアやカテゴリを選択して検索することができます。

不動産取引価格情報取得APIについて

とはいえ、都度都度検索して調べるのは手間がかかりますし、分析もしづらいです。そこで国土交通省ではAPIを公開し、簡単に不動産取引価格情報を取得できるようにしてくれています。

https://www.land.mlit.go.jp/webland/api.html

ここからは、Githubで公開されていj_realty_apiを使用して、スプレッドシートに不動産取引価格情報を出力する流れを紹介しています。

https://github.com/mazarimono/j_realty_api

不動産取引価格情報を取得する

APIで取得できるデータは以下です。

タグ名 内容 備考
Type 取引の種類  
Region 地区  
MunicipalityCode 市区町村コード  
Prefecture 都道府県名  
Municipality 市区町村名  
DistrictName 地区名  
TradePrice 取引価格(総額)  
PricePerUnit 坪単価 英語版には含まれません
FloorPlan 間取り  
Area 面積(平方メートル)  
UnitPrice 取引価格(平方メートル単価)  
LandShape 土地の形状  
Frontage 間口  
TotalFloorArea 延床面積(平方メートル)  
BuildingYear 建築年  
Structure 建物の構造  
Use 用途  
Purpose 今後の利用目的  
Direction 前面道路:方位  
Classification 前面道路:種類  
Breadth 前面道路:幅員(m)  
CityPlanning 都市計画  
CoverageRatio 建ぺい率(%)  
FloorAreaRatio 容積率(%)  
Period 取引時点  
Renovation 改装  
Remarks 取引の事情等

1. 実行環境の準備: APIを利用するためのコードを記述する場としてGoogle Colaboratoryを、データの出力先としてスプレッドシートを準備します。

今回はGoogle Colabとスプレッドシートを使用する方法をご紹介します。

Google Colabは、無料でPythonというプログラミングコードの実行環境を整備できるサービスです。Googleのサービスなので、同じGoogleサービスであるスプレッドシートとの連携もしやすいです。

Google Colabについて

2. エリアの選定: 収集するデータのエリアを決めます。

不動産取引価格情報は、エリアごとにエリアコードを指定して、取得を行いますので、まずは取得したいエリアのエリアコードを調べる必要があります。

今回は、東京の市区町村のコードを調べたいと思います。

まずは、

!pip install j_realty_api japanize_matplotlib -Uqq
 
というコードで、j_realty_apiをインストールします。
次に以下のコードで、東京の市区町村のコード一覧を取得します。
 
from j_realty_api import j_realty_jp as jrn
import japanize_matplotlib
japanize_matplotlib.japanize()
# prop transaction API need Pref code and Municipality code
j = jrn.CityCode('東京')
pref_code = j.pref_code
city_json = j.city_json

pref_code, city_json
 
以下のように13ではじまる東京の市区町村のコードが出力されます。
 

 

3. データの取得: エリアを指定してデータを取得します。

次に、市町村コードと期間を指定して、不動産取引価格情報を取得するコードを記述します。今回は、都心5区に限定して2023Q1から2023Q4までのデータを取得します。

ちなみに、Q1は4~6月ではなく、1~3月で、Q2が4~6月、Q3が7~10月、Q4が11~12月と少し変則的な設定になっています。

!pip install j_realty_api japanize_matplotlib -Uqq

from j_realty_api import j_realty_jp as jrn
import japanize_matplotlib
japanize_matplotlib.japanize()

from google.colab import auth
auth.authenticate_user()

import pandas as pd

import gspread
from google.auth import default
creds, _ = default()

gc = gspread.authorize(creds)

from gspread_dataframe import set_with_dataframe
import time  # time モジュールのインポートを追加

# スプレッドシートのオープン
spreadsheet_id = '*************************************'  # スプレッドシートのID
sheet = gc.open_by_key(spreadsheet_id).sheet1  # シート1を選択

# 対象の市町村コードリスト
city_codes = [13101, 13102, 13103, 13104, 13113]

# 列の順序を定義
columns_ordered = ["Type", "Region", "MunicipalityCode", "Prefecture", "Municipality",
                   "DistrictName", "TradePrice", "PricePerUnit", "FloorPlan", "Area",
                   "UnitPrice", "LandShape", "Frontage", "TotalFloorArea", "BuildingYear",
                   "Structure", "Use", "Purpose", "Direction", "Classification",
                   "Breadth", "CityPlanning", "CoverageRatio", "FloorAreaRatio",
                   "Period", "Renovation", "Remarks"]

# 最初のデータセットかどうかを判断するフラグ
first_dataset = True

for city_code in city_codes:
    # データフレームの取得
    pt = jrn.PropTransactions(pref_code, city_code, 20231, 20234)
    df = pt.get_data()

    # 列の順序を調整
    df = df.reindex(columns=columns_ordered)

    # スプレッドシートにデータフレームを転記
    set_with_dataframe(sheet, df, row=len(sheet.get_all_values()) + 1, include_index=False,
                       include_column_header=first_dataset)

    # 最初のデータセットの後は列名を含めない
    first_dataset = False

    # 次の市町村データのためにスリープを入れる
    time.sleep(5)

上記を実行すると、以下のように指定したスプレッドシートに不動産取引価格情報が出力されます。

 

今回は、国土交通省の不動産取引価格情報取得APIについて紹介しました。

不動産DXに関するご相談などもお気軽にどうぞ。