はじめに
こんにちは。もうすぐ春、新生活ということで、新しい環境に身を置く方々は一人暮らしの季節がやってきますね。一人暮らしのために様々な物件情報を仕入れる中で気に入った物件はお気に入りに登録といった作業をしていると思います。私は来年から一人暮らしを始める予定ですが、いろいろな物件をお気に入り登録しても全ての物件をまとめてどこにあるか把握することができません。ということで、今回はGoogle Colaboratory
とPython
を用いて気に入った賃貸情報をまとめてGoogle Map
上に表示します。
準備
Excel
のファイルをGoogle Colaboratory
にアップロードします。
ファイルは自由に設定して構いませんが今回は以下のように作ります。賃貸料は例として適当に書いてます。
場所名 | 位置情報 | 賃貸料 | URL |
---|---|---|---|
浅草駅 | 35.7119534,139.7971771 | 10.0 | https://www.google.co.jp/maps/place/%E6%B5%85%E8%8D%89%E9%A7%85/@35.7119534,139.7971771,17z/ |
品川駅 | 35.6275112,139.7250494 | 15.0 | https://www.google.co.jp/maps/place/%E5%93%81%E5%B7%9D%E9%A7%85/@35.6275112,139.7250494,14z/ |
1. 場所名
マンション名やアパート名を入れます。
2.位置情報
緯度経度を「,」区切りで入れます。
この時、緯度経度情報を調べるため、少し手間のかかる作業をします。
1.住所を調べる
物件情報サイト上に住所が載っているのでその住所をコピーします。
2.Google Map上で検索
コピーした住所をGoogle Mapで検索します。検索することでGoogle Mapに住所の情報が出ます。この時重要なのはURLの方です。
3.URLから緯度経度情報をコピーする
以下は浅草駅のURLとなっています。
(URLが長いので細かい部分のURLを削って浅草近辺のみ表示されるようになってます)
https://www.google.co.jp/maps/place/%E6%B5%85%E8%8D%89%E9%A7%85/@35.7119534,139.7971771,17z/
このURLの @ 以降に緯度経度が「,」区切りで記されています。
- 緯度
- 35.7119534
- 経度
- 139.7971771
3.賃貸料
物件情報サイト上に載っている賃貸料金を入れましょう。
4.URL
調べている物件情報サイトのURLを入れましょう。サイトURLを入れておくことでマップからすぐにサイトにアクセスすることができるようになります。
(例ではGoogle MapのURLを貼っています)
Colabで実行する
準備が整えばあとは実行するだけです。
まず必要なライブラリをインストールしましょう。
# 必要なライブラリをインストール
!pip install pandas openpyxl folium
次にライブラリをインポートします。
# ライブラリのインポート
import pandas as pd
import folium
from google.colab import files
保存したExcelファイルをColab上にアップロードします。実行後にファイルをアップロードするように言われるので準備で用意したExcelファイルをアップロードしましょう。
# スプレッドシートファイルをアップロード
uploaded = files.upload()
# アップロードされたファイル名を取得
filename = list(uploaded.keys())[0]
1行目のラベルを読み込みます。
data = pd.read_excel(filename)
マップを作成します。今回は東京を初期の位置に設定します。
m = folium.Map(location=[35.6895, 139.6917], zoom_start=10) # 初期位置を東京に設定
マップ上にピンを追加し、情報を紐づけます。
# ピンを地図に追加
for index, row in data.iterrows():
name = row['場所名'] # 1列目: 場所の名前
location = row['位置情報'] # 2列目: 位置情報 (緯度,経度形式)
amount = row['賃貸料'] # 3列目: 金額
url = row['URL'] # 4列目: URL
lat, lon = map(float, location.split(',')) # 緯度と経度に分割
# ポップアップのHTMLを作成
popup_html = f"""
<b>{name}</b><br>
賃料: {amount}万円<br>
<a href="{url}" target="_blank">詳細を見る</a>
"""
popup = folium.Popup(popup_html, max_width=300)
folium.Marker(location=[lat, lon], popup=popup).add_to(m)
# 地図を表示
m.save("map.html")
m
これでマップ上に表示されるようになります。
以下が実行結果です。マップは自由に移動、拡大が可能で、ピンが立っているところをクリックすることで情報を確認することができます。
また、詳細を見るをクリックすることでExcelファイルに載せていた物件情報サイトに飛ぶことができます。
おわりに
今回はGoogle Map
上に賃貸情報一覧をパッと表示したいということで、Google Colaboratory
とPython
を用いて実装を行いました。
一人暮らしのための準備として実装しましたが、賃貸というジャンルだけでなく、旅行の思い出として記録を残したりしてもいいのかもしれません。
この記事を読んだ物件を探している人がいい物件を見つけられますように祈ってます。
おわりです!