data.cdc.gov
のデータセットからデータを取得して性別と年齢階級別の罹患数を求めるためのコードを出したので、やり方を忘れないうちにメモっておく。
使うモジュール
https://dev.socrata.com/foundry/data.cdc.gov/9bhg-hcku
公式のapiのドキュメントを見ると単にRequests(https://docs.python-requests.org/en/latest/)を使うのではなくsodapyを使う。
pypi.org
実際のコード
1) まずはapiサーバーに接続するためのクライアントを設定する
client = Socrata("data.cdc.gov", None)
2) サーバーに接続したらgetメソッドで表を取り出す。
get(dataset_identifier, content_type="json", **kwargs)
dataset_identifierにはjsonのファイル名を代入する。
kwargsのところにはSoQLと呼ばれるSQLっぽいクエリを代入する。
SoQLの詳しい説明は
https://dev.socrata.com/docs/queries/
を参照のこと。
3) 取り出しに成功したらpandasで読み込む
pandas.pydata.org
を用いてデータフレームとして読み込む。
実際のコード例
import pandas as pd from sodapy import Socrata client = Socrata("data.cdc.gov", None) results = client.get("9bhg-hcku", where="`group`='By Total' and `sex`!='All Sexes'", limit=2000) df = pd.DataFrame.from_records(results)
ほとんどサンプルのコードと変わらないが、こんな感じでpandasのデータフレームに読み込める。
ここまでできればcsv等から読み込んだ時と同じようにデータの加工ができる。