728x90
🙋♀️ 재도전! 수원시 종합병원데이터 전처리 -1
(feat. 경기도데이터드림이 짱)
이대론 포기할 수 없다!!! 다른 데이터자료 사이트에서 병원을 얻어보기로했다-!!
내가 찾은 사이트는 바로 '경기데이터드림' !!
각 지자체 데이터 사이트에서도 찾을 수 있으니 경기도지자체사이트로 접속했다.
공공Data에서보다 훨씬 더 정확했던 병원 현황!
물론 전국단위가 아니긴했지만 카테고리화가 잘되어 있었다. 😭
예를 들어 아주대학교병원도 종합병원 카테고리에 잘 들어가 있었다
(*참고: 100병상이상 필수진료과목수 충족했을경우 종합병원이라 한다.)
수원시 종합병원 EDA¶
GOAL
수원시 각 구별마다 병원분포 및 종합병원급 분포에 대해 알아보고, folium으로 그려보기
데이터 불러오기¶
In [1]:
import pandas as pd
import seaborn as sns
import os
import sys
In [2]:
os.getcwd()
Out[2]:
'D:\\jupyter\\share_centos'
In [3]:
os.listdir()
Out[3]:
['.ipynb_checkpoints',
'gyeonggi_hospital.csv',
'gyeonggi_hospital.ipynb',
'hospital.csv',
'suwon_price_trend.ipynb',
'Suwon_Price_Trend_20220124.csv']
In [4]:
df= pd.read_csv('gyeonggi_hospital.csv', encoding='CP949')
In [5]:
df
Out[5]:
시군명 | 사업장명 | 인허가일자 | 소재지도로명주소 | 소재지지번주소 | 소재지우편번호 | 위도 | 경도 | 인허가취소일자 | 영업상태명 | ... | 의료기관종별명 | 의료인수 | 입원실수 | 병상수 | 총면적 | 진료과목내용 | 진료과목내용정보 | 특수구급차대수 | 일반구급차대수 | 허가병상수 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 가평군 | 가평산속요양병원 | 20121008 | NaN | NaN | NaN | NaN | NaN | NaN | 영업중 | ... | 요양병원(일반요양병원) | 6.0 | 44.0 | 83.0 | 2250.00 | 101 301 | 내과, 한방내과 | 0.0 | 0.0 | 0.0 |
1 | 가평군 | 가평푸른숲요양병원 | 20170901 | NaN | NaN | NaN | NaN | NaN | NaN | 영업중 | ... | 요양병원(일반요양병원) | 18.0 | 77.0 | 146.0 | 6883.00 | 308 301 122 101 | 내과, 가정의학과, 한방내과, 침구과 | 0.0 | 0.0 | 0.0 |
2 | 가평군 | 감인노인전문병원 | 20080715 | 경기도 가평군 상면 물골길 262-23 (봉수리) | 경기도 가평군 상면 봉수리 49-4 | 12440.0 | 37.840949 | 127.303655 | NaN | 폐업 | ... | 요양병원(일반요양병원) | 8.0 | 24.0 | 68.0 | 1293.00 | 122 | 가정의학과 | 0.0 | 0.0 | 0.0 |
3 | 가평군 | 강변요양병원 | 20200306 | 경기도 가평군 가평읍 북한강변로 160 | 경기도 가평군 가평읍 금대리 585번지 | 12428.0 | 37.747333 | 127.525983 | NaN | 영업중 | ... | 요양병원(일반요양병원) | 6.0 | 25.0 | 54.0 | 2992.56 | 301 110 109 104 101 | 내과, 외과, 마취통증의학과, 산부인과, 한방내과 | 0.0 | 0.0 | 0.0 |
4 | 가평군 | 국군청평병원 | 19940523 | 경기도 가평군 청평면 경춘로 926 | 경기도 가평군 청평면 청평리 567번지 21호 사서함 | 12452.0 | 37.743691 | 127.429584 | NaN | 폐업 | ... | 병원 | 65.0 | 6.0 | 350.0 | 999999.00 | 401 125 122 120 119 116 115 114 113 112 107 10... | 내과, 신경과, 정신건강의학과, 외과, 정형외과, 신경외과, 흉부외과, 안과, 이비... | 0.0 | 0.0 | 0.0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
1291 | 화성시 | 화성유일병원 | 20190617 | 경기도 화성시 남양읍 남양로920번길 6 | 경기도 화성시 남양읍 북양리 691-1번지 | 18256.0 | 37.217785 | 126.832659 | NaN | 영업중 | ... | 병원 | 36.0 | 30.0 | 97.0 | 7112.26 | 122 116 114 113 111 109 106 105 104 102 101 | 내과, 신경과, 외과, 정형외과, 신경외과, 마취통증의학과, 소아청소년과, 이비인후... | 0.0 | 0.0 | 0.0 |
1292 | 화성시 | 화성제일요양병원 | 20140521 | 경기도 화성시 효행로 990, 2층,3층,5층 (진안동, 비젼월드) | 경기도 화성시 진안동 512번지 1호 2층, 3층 일부, 5층 | 18401.0 | 37.211213 | 127.036367 | NaN | 폐업 | ... | 요양병원(일반요양병원) | 12.0 | 16.0 | 118.0 | 2105.59 | 122 101 114 110 111 102 106 120 211 308 | 침구과, 치과, 재활의학과, 신경외과, 신경과, 소아청소년과, 산부인과, 피부과, ... | 0.0 | 0.0 | 0.0 |
1293 | 화성시 | 화성한방병원 | 20191227 | 경기도 화성시 향남읍 발안양감로 187, 4,5층 | 경기도 화성시 향남읍 하길리 1465번지 2호 | 18606.0 | 37.116396 | 126.910867 | NaN | 영업중 | ... | 한방병원 | 12.0 | 23.0 | 78.0 | 2323.60 | 308 307 306 305 304 303 302 301 106 | 신경외과, 한방내과, 한방부인과, 한방소아과, 한방안·이비인후·피부과, 한방신경정신... | 0.0 | 0.0 | 0.0 |
1294 | 화성시 | 화성해인요양병원 | 20160422 | 경기도 화성시 매송면 화성로 2407-15 | 경기도 화성시 매송면 원평리 50-13번지 | 18289.0 | 37.249533 | 126.929407 | NaN | 영업중 | ... | 요양병원(일반요양병원) | 19.0 | 57.0 | 303.0 | 4950.54 | 101 102 111 112 113 114 120 122 301 302 303 30... | 침구과, 사상체질과, 한방재활의학과, 한방신경정신과, 한방안·이비인후·피부과, 한방... | 0.0 | 0.0 | 0.0 |
1295 | 화성시 | 희망찬병원 | 20080905 | 경기도 화성시 병점중앙로 174 (진안동) | 경기도 화성시 진안동 868-9번지 | 18399.0 | 37.213417 | 127.037559 | NaN | 영업중 | ... | 병원 | 6.0 | 17.0 | 81.0 | 4259.62 | 101 102 105 106 116 | 영상의학과, 신경외과, 정형외과, 신경과, 내과 | 0.0 | 0.0 | 0.0 |
1296 rows × 26 columns
데이터 살펴보기¶
In [6]:
df.shape
Out[6]:
(1296, 26)
In [7]:
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1296 entries, 0 to 1295
Data columns (total 26 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 시군명 1296 non-null object
1 사업장명 1296 non-null object
2 인허가일자 1296 non-null int64
3 소재지도로명주소 915 non-null object
4 소재지지번주소 925 non-null object
5 소재지우편번호 916 non-null float64
6 위도 917 non-null float64
7 경도 917 non-null float64
8 인허가취소일자 8 non-null float64
9 영업상태명 1296 non-null object
10 폐업일자 419 non-null float64
11 소재지시설전화번호 1256 non-null object
12 소재지면적정보 0 non-null float64
13 업태구분명정보 1296 non-null object
14 X좌표값 1173 non-null float64
15 Y좌표값 1173 non-null float64
16 의료기관종별명 1284 non-null object
17 의료인수 1284 non-null float64
18 입원실수 1284 non-null float64
19 병상수 1284 non-null float64
20 총면적 1283 non-null float64
21 진료과목내용 1284 non-null object
22 진료과목내용정보 1284 non-null object
23 특수구급차대수 1284 non-null float64
24 일반구급차대수 1284 non-null float64
25 허가병상수 1284 non-null float64
dtypes: float64(15), int64(1), object(10)
memory usage: 263.4+ KB
In [8]:
df.columns
Out[8]:
Index(['시군명', '사업장명', '인허가일자', '소재지도로명주소', '소재지지번주소', '소재지우편번호', '위도', '경도',
'인허가취소일자', '영업상태명', '폐업일자', '소재지시설전화번호', '소재지면적정보', '업태구분명정보', 'X좌표값',
'Y좌표값', '의료기관종별명', '의료인수', '입원실수', '병상수', '총면적', '진료과목내용', '진료과목내용정보',
'특수구급차대수', '일반구급차대수', '허가병상수'],
dtype='object')
In [9]:
df.isnull().sum()
Out[9]:
시군명 0
사업장명 0
인허가일자 0
소재지도로명주소 381
소재지지번주소 371
소재지우편번호 380
위도 379
경도 379
인허가취소일자 1288
영업상태명 0
폐업일자 877
소재지시설전화번호 40
소재지면적정보 1296
업태구분명정보 0
X좌표값 123
Y좌표값 123
의료기관종별명 12
의료인수 12
입원실수 12
병상수 12
총면적 13
진료과목내용 12
진료과목내용정보 12
특수구급차대수 12
일반구급차대수 12
허가병상수 12
dtype: int64
결측치 없애기¶
In [10]:
# null값 확인하기
null_df = df.isnull().sum()
null_df
Out[10]:
시군명 0
사업장명 0
인허가일자 0
소재지도로명주소 381
소재지지번주소 371
소재지우편번호 380
위도 379
경도 379
인허가취소일자 1288
영업상태명 0
폐업일자 877
소재지시설전화번호 40
소재지면적정보 1296
업태구분명정보 0
X좌표값 123
Y좌표값 123
의료기관종별명 12
의료인수 12
입원실수 12
병상수 12
총면적 13
진료과목내용 12
진료과목내용정보 12
특수구급차대수 12
일반구급차대수 12
허가병상수 12
dtype: int64
In [11]:
# null 개수기준으로 정렬하기(내림차순)
null_df_sort = null_df.sort_values(ascending=False)
null_df_sort
Out[11]:
소재지면적정보 1296
인허가취소일자 1288
폐업일자 877
소재지도로명주소 381
소재지우편번호 380
위도 379
경도 379
소재지지번주소 371
Y좌표값 123
X좌표값 123
소재지시설전화번호 40
총면적 13
진료과목내용 12
진료과목내용정보 12
특수구급차대수 12
일반구급차대수 12
의료기관종별명 12
의료인수 12
입원실수 12
병상수 12
허가병상수 12
시군명 0
사업장명 0
영업상태명 0
인허가일자 0
업태구분명정보 0
dtype: int64
- null값 100개이상인 것(=top10)은 처리해주자
In [12]:
# null_top10
null_top10 = null_df_sort.reset_index().head(10)
null_top10
Out[12]:
index | 0 | |
---|---|---|
0 | 소재지면적정보 | 1296 |
1 | 인허가취소일자 | 1288 |
2 | 폐업일자 | 877 |
3 | 소재지도로명주소 | 381 |
4 | 소재지우편번호 | 380 |
5 | 위도 | 379 |
6 | 경도 | 379 |
7 | 소재지지번주소 | 371 |
8 | Y좌표값 | 123 |
9 | X좌표값 | 123 |
In [13]:
top10 = null_top10["index"].tolist()
top10
Out[13]:
['소재지면적정보',
'인허가취소일자',
'폐업일자',
'소재지도로명주소',
'소재지우편번호',
'위도',
'경도',
'소재지지번주소',
'Y좌표값',
'X좌표값']
In [14]:
df2 = df.drop(columns=top10, axis=1)
df2
Out[14]:
시군명 | 사업장명 | 인허가일자 | 영업상태명 | 소재지시설전화번호 | 업태구분명정보 | 의료기관종별명 | 의료인수 | 입원실수 | 병상수 | 총면적 | 진료과목내용 | 진료과목내용정보 | 특수구급차대수 | 일반구급차대수 | 허가병상수 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 가평군 | 가평산속요양병원 | 20121008 | 영업중 | 031-584-8900 | 요양병원(일반요양병원) | 요양병원(일반요양병원) | 6.0 | 44.0 | 83.0 | 2250.00 | 101 301 | 내과, 한방내과 | 0.0 | 0.0 | 0.0 |
1 | 가평군 | 가평푸른숲요양병원 | 20170901 | 영업중 | 1661-9099 | 요양병원(일반요양병원) | 요양병원(일반요양병원) | 18.0 | 77.0 | 146.0 | 6883.00 | 308 301 122 101 | 내과, 가정의학과, 한방내과, 침구과 | 0.0 | 0.0 | 0.0 |
2 | 가평군 | 감인노인전문병원 | 20080715 | 폐업 | 031-584-4728 | 요양병원(일반요양병원) | 요양병원(일반요양병원) | 8.0 | 24.0 | 68.0 | 1293.00 | 122 | 가정의학과 | 0.0 | 0.0 | 0.0 |
3 | 가평군 | 강변요양병원 | 20200306 | 영업중 | 031-582-8858 | 요양병원(일반요양병원) | 요양병원(일반요양병원) | 6.0 | 25.0 | 54.0 | 2992.56 | 301 110 109 104 101 | 내과, 외과, 마취통증의학과, 산부인과, 한방내과 | 0.0 | 0.0 | 0.0 |
4 | 가평군 | 국군청평병원 | 19940523 | 폐업 | 031-584-1363 | 병원 | 병원 | 65.0 | 6.0 | 350.0 | 999999.00 | 401 125 122 120 119 116 115 114 113 112 107 10... | 내과, 신경과, 정신건강의학과, 외과, 정형외과, 신경외과, 흉부외과, 안과, 이비... | 0.0 | 0.0 | 0.0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
1291 | 화성시 | 화성유일병원 | 20190617 | 영업중 | 031-355-0119 | 병원 | 병원 | 36.0 | 30.0 | 97.0 | 7112.26 | 122 116 114 113 111 109 106 105 104 102 101 | 내과, 신경과, 외과, 정형외과, 신경외과, 마취통증의학과, 소아청소년과, 이비인후... | 0.0 | 0.0 | 0.0 |
1292 | 화성시 | 화성제일요양병원 | 20140521 | 폐업 | 031-526-0030 | 요양병원(일반요양병원) | 요양병원(일반요양병원) | 12.0 | 16.0 | 118.0 | 2105.59 | 122 101 114 110 111 102 106 120 211 308 | 침구과, 치과, 재활의학과, 신경외과, 신경과, 소아청소년과, 산부인과, 피부과, ... | 0.0 | 0.0 | 0.0 |
1293 | 화성시 | 화성한방병원 | 20191227 | 영업중 | 031-356-8275 | 한방병원 | 한방병원 | 12.0 | 23.0 | 78.0 | 2323.60 | 308 307 306 305 304 303 302 301 106 | 신경외과, 한방내과, 한방부인과, 한방소아과, 한방안·이비인후·피부과, 한방신경정신... | 0.0 | 0.0 | 0.0 |
1294 | 화성시 | 화성해인요양병원 | 20160422 | 영업중 | 031-291-8331 | 요양병원(일반요양병원) | 요양병원(일반요양병원) | 19.0 | 57.0 | 303.0 | 4950.54 | 101 102 111 112 113 114 120 122 301 302 303 30... | 침구과, 사상체질과, 한방재활의학과, 한방신경정신과, 한방안·이비인후·피부과, 한방... | 0.0 | 0.0 | 0.0 |
1295 | 화성시 | 희망찬병원 | 20080905 | 영업중 | 031-221-6999 | 병원 | 병원 | 6.0 | 17.0 | 81.0 | 4259.62 | 101 102 105 106 116 | 영상의학과, 신경외과, 정형외과, 신경과, 내과 | 0.0 | 0.0 | 0.0 |
1296 rows × 16 columns
In [15]:
df2.shape
Out[15]:
(1296, 16)
In [16]:
df2.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1296 entries, 0 to 1295
Data columns (total 16 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 시군명 1296 non-null object
1 사업장명 1296 non-null object
2 인허가일자 1296 non-null int64
3 영업상태명 1296 non-null object
4 소재지시설전화번호 1256 non-null object
5 업태구분명정보 1296 non-null object
6 의료기관종별명 1284 non-null object
7 의료인수 1284 non-null float64
8 입원실수 1284 non-null float64
9 병상수 1284 non-null float64
10 총면적 1283 non-null float64
11 진료과목내용 1284 non-null object
12 진료과목내용정보 1284 non-null object
13 특수구급차대수 1284 non-null float64
14 일반구급차대수 1284 non-null float64
15 허가병상수 1284 non-null float64
dtypes: float64(7), int64(1), object(8)
memory usage: 162.1+ KB
In [19]:
df2
Out[19]:
시군명 | 사업장명 | 인허가일자 | 영업상태명 | 소재지시설전화번호 | 업태구분명정보 | 의료기관종별명 | 의료인수 | 입원실수 | 병상수 | 총면적 | 진료과목내용 | 진료과목내용정보 | 특수구급차대수 | 일반구급차대수 | 허가병상수 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 가평군 | 가평산속요양병원 | 20121008 | 영업중 | 031-584-8900 | 요양병원(일반요양병원) | 요양병원(일반요양병원) | 6.0 | 44.0 | 83.0 | 2250.00 | 101 301 | 내과, 한방내과 | 0.0 | 0.0 | 0.0 |
1 | 가평군 | 가평푸른숲요양병원 | 20170901 | 영업중 | 1661-9099 | 요양병원(일반요양병원) | 요양병원(일반요양병원) | 18.0 | 77.0 | 146.0 | 6883.00 | 308 301 122 101 | 내과, 가정의학과, 한방내과, 침구과 | 0.0 | 0.0 | 0.0 |
2 | 가평군 | 감인노인전문병원 | 20080715 | 폐업 | 031-584-4728 | 요양병원(일반요양병원) | 요양병원(일반요양병원) | 8.0 | 24.0 | 68.0 | 1293.00 | 122 | 가정의학과 | 0.0 | 0.0 | 0.0 |
3 | 가평군 | 강변요양병원 | 20200306 | 영업중 | 031-582-8858 | 요양병원(일반요양병원) | 요양병원(일반요양병원) | 6.0 | 25.0 | 54.0 | 2992.56 | 301 110 109 104 101 | 내과, 외과, 마취통증의학과, 산부인과, 한방내과 | 0.0 | 0.0 | 0.0 |
4 | 가평군 | 국군청평병원 | 19940523 | 폐업 | 031-584-1363 | 병원 | 병원 | 65.0 | 6.0 | 350.0 | 999999.00 | 401 125 122 120 119 116 115 114 113 112 107 10... | 내과, 신경과, 정신건강의학과, 외과, 정형외과, 신경외과, 흉부외과, 안과, 이비... | 0.0 | 0.0 | 0.0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
1291 | 화성시 | 화성유일병원 | 20190617 | 영업중 | 031-355-0119 | 병원 | 병원 | 36.0 | 30.0 | 97.0 | 7112.26 | 122 116 114 113 111 109 106 105 104 102 101 | 내과, 신경과, 외과, 정형외과, 신경외과, 마취통증의학과, 소아청소년과, 이비인후... | 0.0 | 0.0 | 0.0 |
1292 | 화성시 | 화성제일요양병원 | 20140521 | 폐업 | 031-526-0030 | 요양병원(일반요양병원) | 요양병원(일반요양병원) | 12.0 | 16.0 | 118.0 | 2105.59 | 122 101 114 110 111 102 106 120 211 308 | 침구과, 치과, 재활의학과, 신경외과, 신경과, 소아청소년과, 산부인과, 피부과, ... | 0.0 | 0.0 | 0.0 |
1293 | 화성시 | 화성한방병원 | 20191227 | 영업중 | 031-356-8275 | 한방병원 | 한방병원 | 12.0 | 23.0 | 78.0 | 2323.60 | 308 307 306 305 304 303 302 301 106 | 신경외과, 한방내과, 한방부인과, 한방소아과, 한방안·이비인후·피부과, 한방신경정신... | 0.0 | 0.0 | 0.0 |
1294 | 화성시 | 화성해인요양병원 | 20160422 | 영업중 | 031-291-8331 | 요양병원(일반요양병원) | 요양병원(일반요양병원) | 19.0 | 57.0 | 303.0 | 4950.54 | 101 102 111 112 113 114 120 122 301 302 303 30... | 침구과, 사상체질과, 한방재활의학과, 한방신경정신과, 한방안·이비인후·피부과, 한방... | 0.0 | 0.0 | 0.0 |
1295 | 화성시 | 희망찬병원 | 20080905 | 영업중 | 031-221-6999 | 병원 | 병원 | 6.0 | 17.0 | 81.0 | 4259.62 | 101 102 105 106 116 | 영상의학과, 신경외과, 정형외과, 신경과, 내과 | 0.0 | 0.0 | 0.0 |
1296 rows × 16 columns
In [18]:
df2.columns
Out[18]:
Index(['시군명', '사업장명', '인허가일자', '영업상태명', '소재지시설전화번호', '업태구분명정보', '의료기관종별명',
'의료인수', '입원실수', '병상수', '총면적', '진료과목내용', '진료과목내용정보', '특수구급차대수',
'일반구급차대수', '허가병상수'],
dtype='object')
결측치 없애기 전, '수원시' 분류부터 하기¶
- 결측값 제거하면서 위도, 경도가 지워져서, 이후 위도 및 경도를 이용한 folium으로 찍을 때 필요함
- 결측값을 제거하기 전 수원시 범위 내에서 결측값이 많은지 먼저 파악하기로 함!!!
In [27]:
suwon = df[ df["시군명"]=="수원시"]
suwon
Out[27]:
시군명 | 사업장명 | 인허가일자 | 소재지도로명주소 | 소재지지번주소 | 소재지우편번호 | 위도 | 경도 | 인허가취소일자 | 영업상태명 | ... | 의료기관종별명 | 의료인수 | 입원실수 | 병상수 | 총면적 | 진료과목내용 | 진료과목내용정보 | 특수구급차대수 | 일반구급차대수 | 허가병상수 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
498 | 수원시 | 가톨릭대학교 성빈센트병원 | 19670523 | NaN | NaN | NaN | NaN | NaN | NaN | 영업중 | ... | 종합병원 | 1367.0 | 261.0 | 888.0 | 71540.79 | 407 404 403 402 125 123 122 120 119 118 117 11... | 내과, 신경과, 정신건강의학과, 외과, 정형외과, 신경외과, 흉부외과, 성형외과, ... | 0.0 | 0.0 | 0.0 |
499 | 수원시 | 강남여성병원 | 19950713 | NaN | NaN | NaN | NaN | NaN | NaN | 영업중 | ... | 병원 | 19.0 | 14.0 | 30.0 | 3197.40 | 122 114 110 109 108 104 101 | 내과, 외과, 성형외과, 마취통증의학과, 산부인과, 피부과, 가정의학과 | 0.0 | 0.0 | 0.0 |
500 | 수원시 | 경기도의료원 수원병원 | 19651221 | NaN | NaN | NaN | NaN | NaN | NaN | 영업중 | ... | 종합병원 | 171.0 | 53.0 | 167.0 | 105511.20 | 101 102 103 104 105 109 110 111 112 116 119 12... | 내과, 신경과, 정신건강의학과, 외과, 정형외과, 마취통증의학과, 산부인과, 소아청... | 0.0 | 0.0 | 0.0 |
501 | 수원시 | 김찬병원 | 20140624 | 경기도 수원시 권선구 효원로 228 (권선동) | 경기도 수원시 권선구 권선동 1011-4번지 | 16571.0 | 37.262553 | 127.026387 | NaN | 영업중 | ... | 병원 | 30.0 | 37.0 | 72.0 | 3061.01 | 101 102 105 106 107 109 116 120 | 내과, 신경과, 정형외과, 신경외과, 흉부외과, 마취통증의학과, 영상의학과, 재활의학과 | 0.0 | 0.0 | 0.0 |
502 | 수원시 | 나누리수원병원 | 20130429 | 경기도 수원시 영통구 중부대로 295 (원천동, 외 11필지) | 경기도 수원시 영통구 원천동 85번지 21호 외 11필지 | 16503.0 | 37.273861 | 127.048165 | NaN | 영업중 | ... | 병원 | 98.0 | 34.0 | 140.0 | 7580.63 | 120 116 109 107 106 105 103 102 101 | 내과, 신경과, 정신건강의학과, 정형외과, 신경외과, 흉부외과, 마취통증의학과, 영... | 0.0 | 0.0 | 0.0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
585 | 수원시 | 해성병원 | 20171013 | 경기도 수원시 팔달구 경수대로 542 (인계동) | 경기도 수원시 팔달구 인계동 944번지 4호 | 16484.0 | 37.274124 | 127.029981 | NaN | 영업중 | ... | 병원 | 30.0 | 25.0 | 140.0 | 4561.95 | 308 120 102 101 | 내과, 신경과, 재활의학과, 침구과 | 0.0 | 0.0 | 0.0 |
586 | 수원시 | 효정요양병원 | 20111222 | 경기도 수원시 팔달구 팔달산로 89-35 (고등동) | 경기도 수원시 팔달구 고등동 42-97번지 | 16446.0 | 37.277726 | 127.007060 | NaN | 영업중 | ... | 요양병원(일반요양병원) | 29.0 | 35.0 | 199.0 | 4251.24 | 308 303 302 301 122 120 109 108 106 105 102 101 | 내과, 신경과, 정형외과, 신경외과, 성형외과, 마취통증의학과, 재활의학과, 가정의... | 0.0 | 0.0 | 0.0 |
587 | 수원시 | 효행노인전문병원 | 19991214 | 경기도 수원시 장안구 수일로191번길 84 (조원동) | 경기도 수원시 장안구 조원2동 122번지 4호 | 16296.0 | 37.311340 | 127.009402 | NaN | 폐업 | ... | 요양병원(노인병원) | 7.0 | 14.0 | 69.0 | 1764.66 | 101 104 102 115 | 내과, 신경과, 외과, 비뇨의학과 | 0.0 | 0.0 | 0.0 |
588 | 수원시 | 효행노인전문병원 | 19991214 | 경기도 수원시 장안구 수일로191번길 84 (조원동) | 경기도 수원시 장안구 조원2동 122번지 4호 | 16296.0 | 37.311340 | 127.009402 | 20120216.0 | 삭제 | ... | 요양병원(노인병원) | 6.0 | 13.0 | 44.0 | 1764.66 | 101 102 104 115 | 내과, 신경과, 외과, 비뇨의학과 | 0.0 | 0.0 | 0.0 |
589 | 수원시 | 희망병원 | 20110630 | 경기도 수원시 팔달구 중부대로128번길 49, 정화빌딩 (인계동) | 경기도 수원시 팔달구 인계동 953번지 11호 3~5층 | 16482.0 | 37.275960 | 127.029439 | NaN | 폐업 | ... | 요양병원(정신병원) | 8.0 | 15.0 | 96.0 | 1498.20 | 103 102 101 122 120 | 내과, 신경과, 정신건강의학과, 재활의학과, 가정의학과 | 0.0 | 0.0 | 0.0 |
92 rows × 26 columns
In [30]:
suwon.isnull().sum()
Out[30]:
시군명 0
사업장명 0
인허가일자 0
소재지도로명주소 22
소재지지번주소 22
소재지우편번호 22
위도 22
경도 22
인허가취소일자 91
영업상태명 0
폐업일자 73
소재지시설전화번호 3
소재지면적정보 92
업태구분명정보 0
X좌표값 5
Y좌표값 5
의료기관종별명 0
의료인수 0
입원실수 0
병상수 0
총면적 0
진료과목내용 0
진료과목내용정보 0
특수구급차대수 0
일반구급차대수 0
허가병상수 0
dtype: int64
- 수원으로 범위 한정을 해도 결측치가 많았음.
- 먼저, 결측치 수가 없고, 필요없는 정보에 대해서는 drop하기(인허가취소일자, 소재지면적정보)
- 이후, 결측치가 없는 상호명을 이용하여 위도/경도 데이터를 얻어오기
결측치 많고 필요없는 column drop하기¶
In [59]:
suwon2 = suwon.drop(columns=["인허가취소일자","소재지면적정보"], axis=1)
suwon2
Out[59]:
시군명 | 사업장명 | 인허가일자 | 소재지도로명주소 | 소재지지번주소 | 소재지우편번호 | 위도 | 경도 | 영업상태명 | 폐업일자 | ... | 의료기관종별명 | 의료인수 | 입원실수 | 병상수 | 총면적 | 진료과목내용 | 진료과목내용정보 | 특수구급차대수 | 일반구급차대수 | 허가병상수 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
498 | 수원시 | 가톨릭대학교 성빈센트병원 | 19670523 | NaN | NaN | NaN | NaN | NaN | 영업중 | NaN | ... | 종합병원 | 1367.0 | 261.0 | 888.0 | 71540.79 | 407 404 403 402 125 123 122 120 119 118 117 11... | 내과, 신경과, 정신건강의학과, 외과, 정형외과, 신경외과, 흉부외과, 성형외과, ... | 0.0 | 0.0 | 0.0 |
499 | 수원시 | 강남여성병원 | 19950713 | NaN | NaN | NaN | NaN | NaN | 영업중 | NaN | ... | 병원 | 19.0 | 14.0 | 30.0 | 3197.40 | 122 114 110 109 108 104 101 | 내과, 외과, 성형외과, 마취통증의학과, 산부인과, 피부과, 가정의학과 | 0.0 | 0.0 | 0.0 |
500 | 수원시 | 경기도의료원 수원병원 | 19651221 | NaN | NaN | NaN | NaN | NaN | 영업중 | NaN | ... | 종합병원 | 171.0 | 53.0 | 167.0 | 105511.20 | 101 102 103 104 105 109 110 111 112 116 119 12... | 내과, 신경과, 정신건강의학과, 외과, 정형외과, 마취통증의학과, 산부인과, 소아청... | 0.0 | 0.0 | 0.0 |
501 | 수원시 | 김찬병원 | 20140624 | 경기도 수원시 권선구 효원로 228 (권선동) | 경기도 수원시 권선구 권선동 1011-4번지 | 16571.0 | 37.262553 | 127.026387 | 영업중 | NaN | ... | 병원 | 30.0 | 37.0 | 72.0 | 3061.01 | 101 102 105 106 107 109 116 120 | 내과, 신경과, 정형외과, 신경외과, 흉부외과, 마취통증의학과, 영상의학과, 재활의학과 | 0.0 | 0.0 | 0.0 |
502 | 수원시 | 나누리수원병원 | 20130429 | 경기도 수원시 영통구 중부대로 295 (원천동, 외 11필지) | 경기도 수원시 영통구 원천동 85번지 21호 외 11필지 | 16503.0 | 37.273861 | 127.048165 | 영업중 | NaN | ... | 병원 | 98.0 | 34.0 | 140.0 | 7580.63 | 120 116 109 107 106 105 103 102 101 | 내과, 신경과, 정신건강의학과, 정형외과, 신경외과, 흉부외과, 마취통증의학과, 영... | 0.0 | 0.0 | 0.0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
585 | 수원시 | 해성병원 | 20171013 | 경기도 수원시 팔달구 경수대로 542 (인계동) | 경기도 수원시 팔달구 인계동 944번지 4호 | 16484.0 | 37.274124 | 127.029981 | 영업중 | NaN | ... | 병원 | 30.0 | 25.0 | 140.0 | 4561.95 | 308 120 102 101 | 내과, 신경과, 재활의학과, 침구과 | 0.0 | 0.0 | 0.0 |
586 | 수원시 | 효정요양병원 | 20111222 | 경기도 수원시 팔달구 팔달산로 89-35 (고등동) | 경기도 수원시 팔달구 고등동 42-97번지 | 16446.0 | 37.277726 | 127.007060 | 영업중 | NaN | ... | 요양병원(일반요양병원) | 29.0 | 35.0 | 199.0 | 4251.24 | 308 303 302 301 122 120 109 108 106 105 102 101 | 내과, 신경과, 정형외과, 신경외과, 성형외과, 마취통증의학과, 재활의학과, 가정의... | 0.0 | 0.0 | 0.0 |
587 | 수원시 | 효행노인전문병원 | 19991214 | 경기도 수원시 장안구 수일로191번길 84 (조원동) | 경기도 수원시 장안구 조원2동 122번지 4호 | 16296.0 | 37.311340 | 127.009402 | 폐업 | 20160615.0 | ... | 요양병원(노인병원) | 7.0 | 14.0 | 69.0 | 1764.66 | 101 104 102 115 | 내과, 신경과, 외과, 비뇨의학과 | 0.0 | 0.0 | 0.0 |
588 | 수원시 | 효행노인전문병원 | 19991214 | 경기도 수원시 장안구 수일로191번길 84 (조원동) | 경기도 수원시 장안구 조원2동 122번지 4호 | 16296.0 | 37.311340 | 127.009402 | 삭제 | NaN | ... | 요양병원(노인병원) | 6.0 | 13.0 | 44.0 | 1764.66 | 101 102 104 115 | 내과, 신경과, 외과, 비뇨의학과 | 0.0 | 0.0 | 0.0 |
589 | 수원시 | 희망병원 | 20110630 | 경기도 수원시 팔달구 중부대로128번길 49, 정화빌딩 (인계동) | 경기도 수원시 팔달구 인계동 953번지 11호 3~5층 | 16482.0 | 37.275960 | 127.029439 | 폐업 | 20201012.0 | ... | 요양병원(정신병원) | 8.0 | 15.0 | 96.0 | 1498.20 | 103 102 101 122 120 | 내과, 신경과, 정신건강의학과, 재활의학과, 가정의학과 | 0.0 | 0.0 | 0.0 |
92 rows × 24 columns
In [60]:
suwon2.columns
Out[60]:
Index(['시군명', '사업장명', '인허가일자', '소재지도로명주소', '소재지지번주소', '소재지우편번호', '위도', '경도',
'영업상태명', '폐업일자', '소재지시설전화번호', '업태구분명정보', 'X좌표값', 'Y좌표값', '의료기관종별명',
'의료인수', '입원실수', '병상수', '총면적', '진료과목내용', '진료과목내용정보', '특수구급차대수',
'일반구급차대수', '허가병상수'],
dtype='object')
영업상태명이 '영업중'인 것만 보이게 처리¶
In [95]:
suwon3 = suwon2[suwon2["영업상태명"]=="영업중"]
suwon3
Out[95]:
시군명 | 사업장명 | 인허가일자 | 소재지도로명주소 | 소재지지번주소 | 소재지우편번호 | 위도 | 경도 | 영업상태명 | 폐업일자 | ... | 의료기관종별명 | 의료인수 | 입원실수 | 병상수 | 총면적 | 진료과목내용 | 진료과목내용정보 | 특수구급차대수 | 일반구급차대수 | 허가병상수 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
498 | 수원시 | 가톨릭대학교 성빈센트병원 | 19670523 | NaN | NaN | NaN | NaN | NaN | 영업중 | NaN | ... | 종합병원 | 1367.0 | 261.0 | 888.0 | 71540.79 | 407 404 403 402 125 123 122 120 119 118 117 11... | 내과, 신경과, 정신건강의학과, 외과, 정형외과, 신경외과, 흉부외과, 성형외과, ... | 0.0 | 0.0 | 0.0 |
499 | 수원시 | 강남여성병원 | 19950713 | NaN | NaN | NaN | NaN | NaN | 영업중 | NaN | ... | 병원 | 19.0 | 14.0 | 30.0 | 3197.40 | 122 114 110 109 108 104 101 | 내과, 외과, 성형외과, 마취통증의학과, 산부인과, 피부과, 가정의학과 | 0.0 | 0.0 | 0.0 |
500 | 수원시 | 경기도의료원 수원병원 | 19651221 | NaN | NaN | NaN | NaN | NaN | 영업중 | NaN | ... | 종합병원 | 171.0 | 53.0 | 167.0 | 105511.20 | 101 102 103 104 105 109 110 111 112 116 119 12... | 내과, 신경과, 정신건강의학과, 외과, 정형외과, 마취통증의학과, 산부인과, 소아청... | 0.0 | 0.0 | 0.0 |
501 | 수원시 | 김찬병원 | 20140624 | 경기도 수원시 권선구 효원로 228 (권선동) | 경기도 수원시 권선구 권선동 1011-4번지 | 16571.0 | 37.262553 | 127.026387 | 영업중 | NaN | ... | 병원 | 30.0 | 37.0 | 72.0 | 3061.01 | 101 102 105 106 107 109 116 120 | 내과, 신경과, 정형외과, 신경외과, 흉부외과, 마취통증의학과, 영상의학과, 재활의학과 | 0.0 | 0.0 | 0.0 |
502 | 수원시 | 나누리수원병원 | 20130429 | 경기도 수원시 영통구 중부대로 295 (원천동, 외 11필지) | 경기도 수원시 영통구 원천동 85번지 21호 외 11필지 | 16503.0 | 37.273861 | 127.048165 | 영업중 | NaN | ... | 병원 | 98.0 | 34.0 | 140.0 | 7580.63 | 120 116 109 107 106 105 103 102 101 | 내과, 신경과, 정신건강의학과, 정형외과, 신경외과, 흉부외과, 마취통증의학과, 영... | 0.0 | 0.0 | 0.0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
582 | 수원시 | 학교법인 대우학원 아주대학교요양병원 | 20200128 | 경기도 수원시 영통구 월드컵로150번길 21, 아주대학교요양병원 (원천동) | 경기도 수원시 영통구 원천동 561번지 아주대학교요양병원 | 16500.0 | 37.279129 | 127.049115 | 영업중 | NaN | ... | 요양병원(일반요양병원) | 46.0 | 103.0 | 473.0 | 34244.47 | 122 120 104 102 101 | 내과, 신경과, 외과, 재활의학과, 가정의학과 | 0.0 | 0.0 | 0.0 |
583 | 수원시 | 한독병원 | 20030111 | 경기도 수원시 팔달구 경수대로 487 (인계동) | 경기도 수원시 팔달구 인계동 966번지 2호 외3필지 | 16481.0 | 37.269642 | 127.027223 | 영업중 | NaN | ... | 병원 | 6.0 | 16.0 | 38.0 | 1932.94 | 104 105 106 115 | 외과, 정형외과, 신경외과, 비뇨의학과 | 0.0 | 0.0 | 0.0 |
584 | 수원시 | 한빛현요양병원 | 20100604 | NaN | NaN | NaN | NaN | NaN | 영업중 | NaN | ... | 요양병원(일반요양병원) | 23.0 | 37.0 | 226.0 | 5020.00 | 101 104 102 120 301 304 308 306 305 | 내과, 신경과, 외과, 재활의학과, 한방내과, 한방안·이비인후·피부과, 한방신경정신... | 0.0 | 0.0 | 0.0 |
585 | 수원시 | 해성병원 | 20171013 | 경기도 수원시 팔달구 경수대로 542 (인계동) | 경기도 수원시 팔달구 인계동 944번지 4호 | 16484.0 | 37.274124 | 127.029981 | 영업중 | NaN | ... | 병원 | 30.0 | 25.0 | 140.0 | 4561.95 | 308 120 102 101 | 내과, 신경과, 재활의학과, 침구과 | 0.0 | 0.0 | 0.0 |
586 | 수원시 | 효정요양병원 | 20111222 | 경기도 수원시 팔달구 팔달산로 89-35 (고등동) | 경기도 수원시 팔달구 고등동 42-97번지 | 16446.0 | 37.277726 | 127.007060 | 영업중 | NaN | ... | 요양병원(일반요양병원) | 29.0 | 35.0 | 199.0 | 4251.24 | 308 303 302 301 122 120 109 108 106 105 102 101 | 내과, 신경과, 정형외과, 신경외과, 성형외과, 마취통증의학과, 재활의학과, 가정의... | 0.0 | 0.0 | 0.0 |
71 rows × 24 columns
결측치 없는 상호명을 이용하여 위도/경도 데이터 얻어오기¶
In [96]:
!pip install geopy
Requirement already satisfied: geopy in c:\users\light\anaconda3\lib\site-packages (2.2.0)
Requirement already satisfied: geographiclib<2,>=1.49 in c:\users\light\anaconda3\lib\site-packages (from geopy) (1.52)
In [97]:
!pip install PrettyPrint
Requirement already satisfied: PrettyPrint in c:\users\light\anaconda3\lib\site-packages (0.1.5)
In [98]:
from geopy.geocoders import Nominatim
from pprint import pprint
In [126]:
#테스트 하기
app = Nominatim(user_agent='tutorial')
location = app.geocode("가톨릭대학교 성빈센트병원")
pprint(location)
None
- split으로 나눠서 병원이름값만 가져오기
In [127]:
#테스트 하기
app = Nominatim(user_agent='tutorial')
location = app.geocode("성빈센트병원")
pprint(location)
Location(성빈센트병원, 중부대로, 팔달구, 수원시, 경기도, 16471, 대한민국, (37.27819205, 127.02784710221066, 0.0))
In [128]:
#위도
print(location.latitude)
#경도
print(location.longitude)
37.27819205
127.02784710221066
위도/경도 데이터 집어넣기¶
In [101]:
#위도가 null값인 상호명 얻어오기
suwon3[suwon3["위도"].isnull()]["사업장명"].tolist()
Out[101]:
['가톨릭대학교 성빈센트병원',
'강남여성병원',
'경기도의료원 수원병원',
'다인병원',
'동서요양병원',
'바로본병원',
'백성병원',
'서울삼성호매실요양병원',
'성모척관병원',
'수원삼성요양병원',
'수원센트럴요양병원',
'수원요양병원',
'수원행복한요양병원',
'수원효요양병원',
'연세엘림요양병원',
'의료법인 명인의료재단 화홍병원',
'의료법인 토마스의료재단 윌스기념병원',
'의료법인 한성재단 S서울병원',
'이안한방병원',
'참결한방병원',
'한빛현요양병원']
In [102]:
# 경도가 null값인 상호명 얻어오기
suwon3[suwon3["경도"].isnull()]["사업장명"].tolist()
Out[102]:
['가톨릭대학교 성빈센트병원',
'강남여성병원',
'경기도의료원 수원병원',
'다인병원',
'동서요양병원',
'바로본병원',
'백성병원',
'서울삼성호매실요양병원',
'성모척관병원',
'수원삼성요양병원',
'수원센트럴요양병원',
'수원요양병원',
'수원행복한요양병원',
'수원효요양병원',
'연세엘림요양병원',
'의료법인 명인의료재단 화홍병원',
'의료법인 토마스의료재단 윌스기념병원',
'의료법인 한성재단 S서울병원',
'이안한방병원',
'참결한방병원',
'한빛현요양병원']
In [103]:
# 위도가 null값인 것과 경도가 null값인 곳이 동일?
if suwon3[suwon3["위도"].isnull()]["사업장명"].tolist() == suwon3[suwon3["경도"].isnull()]["사업장명"].tolist():
print(True)
else:
print(False)
True
In [111]:
# 위도/경도값 null인 상호명을 리스트로 저장 후
# 반복문으로 그 상호명 위도,경도에 값 입력해주기
null_name= suwon3[suwon3["위도"].isnull()]["사업장명"].tolist()
for i in null_name:
ii=i.split()[-1]
app = Nominatim(user_agent='tutorial')
want_location = app.geocode(ii)
print(ii)
try:
want_location.latitude
except Exception as e:
print(e)
else:
print(want_location.latitude)
# suwon.loc[suwon["상호명"]==i,"위도"] = want_location.latitude
# suwon.loc[suwon["상호명"]==i,"경도"] = want_location.longitude
성빈센트병원
37.27819205
강남여성병원
37.2768319
수원병원
37.291965149999996
다인병원
37.2918941
동서요양병원
'NoneType' object has no attribute 'latitude'
바로본병원
'NoneType' object has no attribute 'latitude'
백성병원
37.267801950000006
서울삼성호매실요양병원
'NoneType' object has no attribute 'latitude'
성모척관병원
37.2920463
수원삼성요양병원
37.293606
수원센트럴요양병원
'NoneType' object has no attribute 'latitude'
수원요양병원
'NoneType' object has no attribute 'latitude'
수원행복한요양병원
'NoneType' object has no attribute 'latitude'
수원효요양병원
'NoneType' object has no attribute 'latitude'
연세엘림요양병원
37.2929161
화홍병원
'NoneType' object has no attribute 'latitude'
윌스기념병원
37.26515715
S서울병원
'NoneType' object has no attribute 'latitude'
이안한방병원
'NoneType' object has no attribute 'latitude'
참결한방병원
'NoneType' object has no attribute 'latitude'
한빛현요양병원
37.3064428
오늘은 여기까지!!
geopy 말고 다른 방법을 찾아서 위도,경도를 뽑아보려한다!
그럼 내일 이어서 ~😊
728x90
'😎 프로젝트 만들기 > - EDA(kaggle,etc)' 카테고리의 다른 글
[kaggle][성인 인구조사 소득예측] 🐱💻 1. 첫 캐글 EDA (0) | 2022.03.11 |
---|---|
[kaggle] 🤨시작하기 전 - 성인 인구조사 소득 예측 대회 (0) | 2022.03.07 |
[pandas] 수원시 종합병원 데이터 전처리 (현실 세계의 데이터는 오류 투성이....) (0) | 2022.01.29 |
[ELK] ELK활용 미니프로젝트 - 마무리하면서 느낀 점 (0) | 2021.12.24 |
[ELK] ELK활용 미니프로젝트 - 시각화 및 대시보드 만들기 (0) | 2021.12.23 |