본문 바로가기
프로그램

[파이썬] 문제 : pandas 딕셔너리 요소 추출해 Column 추가

by 오디세이99 2022. 12. 20.
728x90
반응형

(문제)

파이썬 자료 추출 중 위 사진에 있는 coordinate 결과로 나오는 lat 과 lon 값을 각각 출력을 하고 싶습니다.
현재 사진에서 coordinate 는 빠지고 호텔 ID. 호텔 이름, 평점 lat, lon 에 대한 값들이 보이도록 요청.
 
 
(방법)

데이터가 없어서

제가 임의로 비슷하게 만들었습니다. 아마도 pandas Dataframe 으로 보입니다.

coordinate는 딕셔너리 구조로 보입니다. 문자열 이라면 다르게 만들어야 합니다.

데이터 만들기. 데이터를 임의로 만들었습니다.

import pandas as pd

df = pd.DataFrame(columns=range(4))
df.columns = ['호텔ID','호텔이름','호텔등급','coordinate']

df.loc[len(df)] = ['614692000', '피터캣호텔A', '3.0', {'lat':'3.7575034', 'lon':'126.989'}]
df.loc[len(df)] = ['614692001', '피터캣호텔B', '2.5', {'lat':'4.7575034', 'lon':'127.989'}]
df.loc[len(df)] = ['614692002', '피터캣호텔C', '2.0', {'lat':'5.7575034', 'lon':'128.989'}]
df.loc[len(df)] = ['614692003', '피터캣호텔D', '3.2', {'lat':'6.7575034', 'lon':'129.989'}]

lat, lon 컬럼으로 추가

df['lat'] = [float(df.loc[i]['coordinate']['lat']) for i in range(len(df))]
df['lon'] = [float(df.loc[i]['coordinate']['lon']) for i in range(len(df))]

728x90
반응형

댓글