LoginSignup
0
3
この記事誰得? 私しか得しないニッチな技術で記事投稿!

Google ColabでPythonの位置情報を扱えるライブラリGeoPandasが最初から入るようになった話

Last updated at Posted at 2023-07-06

概要

GeoPandasはちょっとインストールが厄介なパッケージで、入門者がローカル環境に入れるのは結構しんどい(Windowsは特に)。でも、位置情報を扱うのに便利なパッケージなので、使いたい。紹介したい。でも、環境作成大変だし・・・ってのがありました。

それがGoogle Colabにプリインストールされて凄い便利になりました。実はちょっと前まで、GeoPandas以外のパーツまでそろっていたのに、GeoPandasは入っていない状態を見てなんでだろうな?と思っていたのですが、最近入ったようです。

その状況を疑問に思った私のツイートは6月9日に行われてるので、それからすぐ入ったっぽい。
https://twitter.com/OgawaHideyuki/status/1667107337851793408

pip listで確認するとあります。
geopandas.png

ちょっとした使い方の紹介

GeoPandasの紹介もしておきます。GeoPandasは表形式のデータ+位置情報が扱えるライブラリです。pandasプラス位置情報という感じでいろいろ便利に扱えます。
https://geopandas.org/en/stable/index.html

ちょっと使ってみましょう。ここのコードをすべて実行したColabのリンクは次の通りです。
https://colab.research.google.com/drive/17dz-gePQcF9mj9TvWShoI5Z-HcoK-Mw7?usp=sharing

まず、サンプルデータを持つライブラリgeodatasetsと位置情報の可視化のためにmapclassifyというライブラリをインストールします。

!pip install geodatasets #位置情報のサンプルデータ https://github.com/geopandas/geodatasets
!pip install mapclassify # 可視化ツール https://github.com/pysal/mapclassify

次にライブラリをインポートします。pandas同様、データを扱うのも容易なことを紹介するために、可視化ライブラリplotly expressも用います。

import geopandas as gpd
from geodatasets import data, get_path
import plotly.express as px #データ可視化ツール

サンプルデータを全部確認してみましょう。

print(data)

次のような感じで出力されます。

{'geoda': {'airbnb': {'url': 'https://geodacenter.github.io/data-and-lab//data/airbnb.zip', 'license': 'NA', 'attribution': 'Center for Spatial Data Science, University of Chicago', 'name': 'geoda.airbnb', 'description': 'Airbnb rentals, socioeconomics, and crime in Chicago', 'geometry_type': 'Polygon', 'nrows': 77, 'ncols': 21, 'details': 'https://geodacenter.github.io/data-and-lab//airbnb/', 'hash': 'a2ab1e3f938226d287dd76cde18c00e2d3a260640dd826da7131827d9e76c824', 'filename': 'airbnb.zip'}, 'atlanta': {'url': 'https://geodacenter.github.io/data-and-lab//data/atlanta_hom.zip', 'license': 'NA', 'attribution': 'Center for Spa

最初にあるair bnbのデータを読み込みます。データの詳細はリンク先を参照ください。次のような77行21列のデータが表示されます。

bnb = gpd.read_file(get_path('geoda airbnb'))
bnb

geop2.png

レイティングと犯罪数を散布図でプロットしました。

fig = px.scatter(bnb, x='num_crimes', y='rev_rating')
fig.show()

geop3.png

次にGeoDataFrameのexploreメソッドを使って、コロプレス図を作成します。コロプレス図に使いたい列名を渡すだけです。簡単。

bnb.explore('rev_rating')

geop.png

ツールチップが全部見えて嫌な場合は、引数tooltipに表示したい列名を渡せば、見たいものだけ見られます。

bnb.explore('rev_rating', tooltip=['response_r', 'accept_r', 'rev_rating', 'price_pp'])

geop4.png

まとめ

というわけで、こんな感じで位置情報が扱えるGeoPandasがColabから簡単に使えるようになった話でした。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3