[Python] Open API를 활용한 Air Quality 데이터 수집 예제
Page content
강의 홍보
- 취준생을 위한 강의를 제작하였습니다.
- 본 블로그를 통해서 강의를 수강하신 분은 게시글 제목과 링크를 수강하여 인프런 메시지를 통해 보내주시기를 바랍니다.
스타벅스 아이스 아메리카노를 선물
로 보내드리겠습니다.
- [비전공자 대환영] 제로베이스도 쉽게 입문하는 파이썬 데이터 분석 - 캐글입문기
1줄 요약
- 오픈 데이터로 활용하여 시계열 데이터를 확보해보자.
동기 부여
- Pandas 공식 홈페이지가 살짝 바뀐 듯 하였다.
- 시계열 데이터를 다루는 페이지를 확인하던 중 open air quality data API가 있는 것을 확인하였다.
라이브러리 설치
- 라이브러리 설치는 비교적 간단하다.
$ pip install py-openaq
Collecting py-openaq
Downloading py-openaq-1.1.0.tar.gz (7.9 kB)
Building wheels for collected packages: py-openaq
Building wheel for py-openaq (setup.py) ... done
Created wheel for py-openaq: filename=py_openaq-1.1.0-py3-none-any.whl size=9036 sha256=1d5011bd3ef180c93d275081f6f5ad20d569c9f7ce2982eabaaeee7307070b75
Stored in directory: /Users/evan/Library/Caches/pip/wheels/01/1d/be/6b6a0ee792bbc9138aeb645707cdad8da741bb2d789beb04d9
Successfully built py-openaq
Installing collected packages: py-openaq
Successfully installed py-openaq-1.1.0
데이터 불러오기
- 데이터를 불러오면 다음과 같다.
import openaq
api = openaq.OpenAQ()
location = "FR04014"
date_from = "2019-05-07T01:00:00"
date_to = "2019-06-21T00:00:00"
parameter = "no2"
FR04014_results = api.measurements(location=location,
parameter=parameter,
date_from=date_from,
date_to=date_to,
limit=10000,
df=True,
index='local')
print(FR04014_results.shape)
FR04014_results.head()
(1002, 9)
location | parameter | value | unit | country | city | date.utc | coordinates.latitude | coordinates.longitude | |
---|---|---|---|---|---|---|---|---|---|
date.local | |||||||||
2019-06-21 02:00:00 | FR04014 | no2 | 20.0 | b'\xc2\xb5g/m\xc2\xb3' | FR | Paris | 2019-06-21 00:00:00+00:00 | 48.837243 | 2.393902 |
2019-06-21 01:00:00 | FR04014 | no2 | 21.8 | b'\xc2\xb5g/m\xc2\xb3' | FR | Paris | 2019-06-20 23:00:00+00:00 | 48.837243 | 2.393902 |
2019-06-21 00:00:00 | FR04014 | no2 | 26.5 | b'\xc2\xb5g/m\xc2\xb3' | FR | Paris | 2019-06-20 22:00:00+00:00 | 48.837243 | 2.393902 |
2019-06-20 23:00:00 | FR04014 | no2 | 24.9 | b'\xc2\xb5g/m\xc2\xb3' | FR | Paris | 2019-06-20 21:00:00+00:00 | 48.837243 | 2.393902 |
2019-06-20 22:00:00 | FR04014 | no2 | 21.4 | b'\xc2\xb5g/m\xc2\xb3' | FR | Paris | 2019-06-20 20:00:00+00:00 | 48.837243 | 2.393902 |
- 정상적으로 데이터가 불러오진 것을 확인할 수 있다.
- 다음은 3개의 데이터셋을 만들어서 합친 후, 시계열 데이터 핸들링을 연습해보독 한다.
Reference
HP-Nunes.(2020). An Introduction to Data Collection: REST APIs with Python & Pizzas, Medium, Retrieved from https://medium.com/@geocuriosity/an-introduction-to-data-collection-rest-apis-with-python-pizzas-7b682cef676c