[eda] googlemaps 위도, 경도 구하기 (list out of range 오류)

화이팅·2023년 1월 25일
0

eda

목록 보기
10/29

사실 그동안 이해안되도 그냥 수업 듣고 넘어감..

이디야 해설 영상 다시 들으면서 이제 진짜 마지막 기회같아서 찾아봄

gmaps_key=''
gmaps=googlemaps.Client(key=gmaps_key)

tmp=gmaps.geocode('중부경찰서',language='ko')
tmp

>> 
[{'address_components': [{'long_name': '27',
    'short_name': '27',
    'types': ['premise']},
   {'long_name': '수표로',
    'short_name': '수표로',
    'types': ['political', 'sublocality', 'sublocality_level_4']},
   {'long_name': '중구',
    'short_name': '중구',
    'types': ['political', 'sublocality', 'sublocality_level_1']},
   {'long_name': '서울특별시',
    'short_name': '서울특별시',
    'types': ['administrative_area_level_1', 'political']},
   {'long_name': '대한민국',
    'short_name': 'KR',
    'types': ['country', 'political']},
   {'long_name': '100-032',
    'short_name': '100-032',
    'types': ['postal_code']}],
  'formatted_address': '대한민국 서울특별시 중구 수표로 27',
  'geometry': {'location': {'lat': 37.56361709999999, 'lng': 126.9896517},
   'location_type': 'ROOFTOP',
   'viewport': {'northeast': {'lat': 37.5649660802915,
     'lng': 126.9910006802915},
    'southwest': {'lat': 37.5622681197085, 'lng': 126.9883027197085}}},
  'partial_match': True,
  'place_id': 'ChIJc-9q5uSifDURLhQmr5wkXmc',
  'plus_code': {'compound_code': 'HX7Q+CV 대한민국 서울특별시',
   'global_code': '8Q98HX7Q+CV'},
  'types': ['establishment', 'point_of_interest']}]
type(tmp),len(tmp)

>> (list, 1)
  • 'formatted_address': '대한민국 서울특별시 중구 수표로 27'를 사용하고 싶음

tmp[0]['formatted_address']

  • 위도, 경도 구하고 싶음

lat=tmp[0]['geometry']['location']['lat']
lng=tmp[0]['geometry']['location']['lng']


++

  • 데이터프레임 df에 위도, 경도컬럼에 값 추가하고 싶음
for idx, rows in tqdm_notebook(df.iterrows()):
    address=rows['address']
    tmp=gmaps.geocode(address,language='ko')

    tmp[0].get('formatted_address')

    lat=tmp[0].get('geometry')['location']['lat']
    lng=tmp[0].get('geometry')['location']['lng']

    df.loc[idx,'lat']=lat  # df.loc[행,열]
    df.loc[idx,'lng']=lng

또 오류

list out of range

tmp[0].get('formatted_address')에서 오류남

try:
	tmp[0].get('formatted_address')

    lat=tmp[0].get('geometry')['location']['lat']
    lng=tmp[0].get('geometry')['location']['lng']

except:
	lat=np.lat
    lng=np.lng  
df[df['lat'].isnull()]
> 
292	가재울점	서울 서대문구 수색로 100 (북가좌동, DMC래미안e편한세상)	NaN	NaN
358	월곡중앙점	서울 성북구 종암로 167 (하월곡동, 동일하이빌뉴시티)	NaN	NaN
373	가든파이브테크노관점	서울 송파구 충민로 66 (문정동, 가든파이브라이프)	NaN	NaN
409	잠실역점	서울 송파구 송파대로 567 (잠실동, 잠실주공아파트)	NaN	NaN
449	라이프점	서울 영등포구 63로 40 (여의도동, 라이프오피스텔)	NaN	NaN
607	구로코레일점	서울 구로구 구로중앙로 174 (구로동, 구로역)	NaN	NaN
698	서일중앙점	서울 중랑구 용마산로 394 (면목동, 해동검도)	NaN	NaN

7곳 정보가 안떠서 오류난듯..
왜 안날까...궁금하다

profile
하하...하.

0개의 댓글