Last active
March 11, 2020 08:00
-
-
Save askcompany-kr/674c06703401e9ef2224b4d0513114b4 to your computer and use it in GitHub Desktop.
공적마스크 데이터를 파이썬으로 가져와서 Pandas로 살짝 살펴보기
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"5000 stores ...\n", | |
"5000 stores ...\n", | |
"5000 stores ...\n", | |
"5000 stores ...\n", | |
"5000 stores ...\n", | |
"1540 stores ...\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"26540" | |
] | |
}, | |
"execution_count": 1, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"import requests\n", | |
"import pandas as pd\n", | |
"\n", | |
"\n", | |
"server_url = \"https://8oi9s0nnth.apigw.ntruss.com/corona19-masks/v1/stores/json\"\n", | |
"\n", | |
"store_list = []\n", | |
"\n", | |
"for page in range(1, 10):\n", | |
" params = {\n", | |
" 'page': page,\n", | |
" 'perPage': 5000,\n", | |
" }\n", | |
"\n", | |
" res = requests.get(server_url, params=params)\n", | |
" res_obj = res.json()\n", | |
" store_infos = res_obj['storeInfos']\n", | |
" if not store_infos:\n", | |
" break\n", | |
"\n", | |
" print(f\"{len(store_infos)} stores ...\")\n", | |
" store_list.extend(store_infos)\n", | |
" \n", | |
"len(store_list)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(26540, 6)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>addr</th>\n", | |
" <th>code</th>\n", | |
" <th>lat</th>\n", | |
" <th>lng</th>\n", | |
" <th>name</th>\n", | |
" <th>type</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>충청남도 홍성군 갈산면 상촌로</td>\n", | |
" <td>34840559</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>신신약국</td>\n", | |
" <td>01</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>대구광역시 달서구 달구벌대로 1736, 1층 (두류동)</td>\n", | |
" <td>37844571</td>\n", | |
" <td>35.856678</td>\n", | |
" <td>128.555278</td>\n", | |
" <td>밝은온누리약국</td>\n", | |
" <td>01</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>충청남도 보령시 남대천로 58 (대천동)</td>\n", | |
" <td>34833323</td>\n", | |
" <td>36.348742</td>\n", | |
" <td>126.593534</td>\n", | |
" <td>지애약국</td>\n", | |
" <td>01</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>경북 고령군 쌍림면 대가야로 608</td>\n", | |
" <td>5038300744</td>\n", | |
" <td>35.679196</td>\n", | |
" <td>128.242253</td>\n", | |
" <td>고령쌍림우체국</td>\n", | |
" <td>02</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>부산광역시 금정구 서동로</td>\n", | |
" <td>21839824</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>굿모닝약국</td>\n", | |
" <td>01</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" addr code lat lng name \\\n", | |
"0 충청남도 홍성군 갈산면 상촌로 34840559 NaN NaN 신신약국 \n", | |
"1 대구광역시 달서구 달구벌대로 1736, 1층 (두류동) 37844571 35.856678 128.555278 밝은온누리약국 \n", | |
"2 충청남도 보령시 남대천로 58 (대천동) 34833323 36.348742 126.593534 지애약국 \n", | |
"3 경북 고령군 쌍림면 대가야로 608 5038300744 35.679196 128.242253 고령쌍림우체국 \n", | |
"4 부산광역시 금정구 서동로 21839824 NaN NaN 굿모닝약국 \n", | |
"\n", | |
" type \n", | |
"0 01 \n", | |
"1 01 \n", | |
"2 01 \n", | |
"3 02 \n", | |
"4 01 " | |
] | |
}, | |
"execution_count": 2, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df = pd.DataFrame(store_list)\n", | |
"print(df.shape)\n", | |
"df.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(2341, 6)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>addr</th>\n", | |
" <th>code</th>\n", | |
" <th>lat</th>\n", | |
" <th>lng</th>\n", | |
" <th>name</th>\n", | |
" <th>type</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>충청남도 홍성군 갈산면 상촌로</td>\n", | |
" <td>34840559</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>신신약국</td>\n", | |
" <td>01</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>부산광역시 금정구 서동로</td>\n", | |
" <td>21839824</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>굿모닝약국</td>\n", | |
" <td>01</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>18</th>\n", | |
" <td>서울특별시 서대문구 수색로</td>\n", | |
" <td>12847402</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>새서울DMC약국</td>\n", | |
" <td>01</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>30</th>\n", | |
" <td>서울특별시 강남구 강남대로</td>\n", | |
" <td>12843032</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>신논현비비약국</td>\n", | |
" <td>01</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>32</th>\n", | |
" <td>부산광역시 기장군 정관면 정관로</td>\n", | |
" <td>21842809</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>큰사랑약국</td>\n", | |
" <td>01</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" addr code lat lng name type\n", | |
"0 충청남도 홍성군 갈산면 상촌로 34840559 NaN NaN 신신약국 01\n", | |
"4 부산광역시 금정구 서동로 21839824 NaN NaN 굿모닝약국 01\n", | |
"18 서울특별시 서대문구 수색로 12847402 NaN NaN 새서울DMC약국 01\n", | |
"30 서울특별시 강남구 강남대로 12843032 NaN NaN 신논현비비약국 01\n", | |
"32 부산광역시 기장군 정관면 정관로 21842809 NaN NaN 큰사랑약국 01" | |
] | |
}, | |
"execution_count": 3, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"mask = (df['lat'].isna() | df['lng'].isna())\n", | |
"print(df[mask].shape)\n", | |
"df[mask].head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Export to xlsx" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"df.to_excel(\"public-mask.xlsx\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.7.3" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment