【Python】東京23区のデータ分析してみた

 

こんにちは、のっくんです。

 

ゴールデンウィークいかがお過ごしでしょうか。

 

私は特にやることもないので家で引きこもってコーディングしていますw

 

今日は東京の23区のデータを集めて、簡単なデータ分析をやってみたいと思います。

 

やったみたことは以下の通り。

  1. ウィキペディアから東京23区のデータを取得する
  2. Geopyで地区名から位置情報を取得する
  3. Foursquare APIを使って周辺にある観光スポットを取得する
  4. レストランの位置情報を地図上に表示する
  5. 集めたデータの簡単な分析

 

まずは23区のデータがないと始まらないので、そのあたりを収集するところから始めるよ。

 

スポンサーリンク

東京23区データの取得(BeautifulSoup)

 

このあたりの情報は以下のサイトから取得します。

https://en.wikipedia.org/wiki/Special_wards_of_Tokyo

 

PythonのライブラリであるrequestsとBeautifulSoupを使いスクレイピングします。

 

サイトに行くと以下のようなお宝情報(23区の名前、人口、密度、面積…)があるので、ここから必要な情報を取得します。

chromeの検証ツールを使い、テーブルの名前を取得します。

 

テーブルの列が8個ありますが23区の画像とかはいらないので、以下の情報だけ取り出します。

 

  • 2:区の名前
  • 4:人口
  • 5:密度(/km2)
  • 6:区の面積(km2)
  • 7:主な都市名

 

主な都市名ですが、例えば、「港区だったらお台場」、「千代田区だったら永田町」のような感じですね。

掲載されている最初の都市名だけ取得します。

 

いらないspanタグや改行コードが入っているのでそれを除去しつつ、必要なデータを取り出しました。

 

こんな感じ。

位置情報データの取得(geopy)

 

次に得られた都市名からgeopyを使い位置情報を取得します。

geopyの使い方はシンプルで、都市名を入れるとその経度と緯度が返ってきます。

 

得られた情報をpandasに追加すると以下のような感じ。

 

Pythonだとサクサクっと書けるので、面白いですね。

今度はこの位置情報を使って、近隣のレストランを調べてみようと思います。

周辺スポットのデータ取得(FourSquare API)

 

foursquareが提供しているAPIを使って、周辺スポットのデータを取得します。

以下のサイトからIDとシークレットを取得します。

https://ja.foursquare.com/developers/apps

 

以下のような関数を作り、必要な情報をpandasのデータフレームで取得します。

 

位置情報(名前、緯度、経度)を指定すると、半径1kmの以内の観光スポットを教えてくれます。

 

取得したデータには、ホテルやカフェのデータが含まれるので、レストランの情報だけを以下のコードで抜き出してみました。

 

地図上に可視化する(folium)

 

foliumを使って、渋谷にあるレストランの情報を地図上に可視化してみます。

 

 

短いコードで書けるので便利ですね。

 

おまけ

 

渋谷、新宿、品川、永田町、お台場で、人が訪れている最も多い場所を表示してみました。

ラーメン屋、コンビニ、バー、BBQ屋、カフェ…の順に並んでいます。

レストランの数を比較してみると、

永田町、品川、渋谷、新宿、お台場の順で多いことがわかりました。

 

おわり。

参考

wikipedia,

https://en.wikipedia.org/wiki/Special_wards_of_Tokyo

towardsdatascience.com,

https://towardsdatascience.com/exploring-the-tokyo-neighborhoods-data-science-in-real-life-8b6c2454ca16