티스토리 뷰
728x90
반응형
geojson처럼 지도 관련 데이터는 properties라는 컬럼 안에 그 데이터의 정보가 모두 들어있습니다.
아래와 같은 데이터프레임이 있다고 했을 때, 프레임안에 있는 컬럼을 properties라는 딕셔너리 안에 담아서 새로 컬럼을 생성하도록 하는 방법입니다.
import pandas as pd
data = {
'name': ['A', 'B', 'C'],
'color': ['red', 'blue', 'yellow'],
'value': [1,2,3]
}
df = pd.DataFrame(data)
df
딕셔너리안에 넣고싶은 컬럼명들을 넣어 to_dict으로 새 컬럼을 만들어주면 끝입니다. 참쉽죵?
출력해보면 properties라는 새 컬럼에 딕셔너리형태로 데이터들이 들어간 것을 확인할 수 있습니다.
df['properties'] = df[['name', 'color', 'value']].to_dict(orient='records')
모든 컬럼들을 집어넣으려면 df.keys()를 넣어주면 됩니다.
df['properties'] = df[df.keys()].to_dict(orient='records')
만약, 조건(if else)을 통해 처리를 한 후 넣어야한다면, 딕셔너리로 만들기 전에 lambda로 먼저 처리해줍니다.
예시로, test라는 함수를 만들어놓고, value에 있는 값을 조건으로하여 stringNumber, smallLetter라는 컬럼을 생성하도록 해봤습니다.
def test(val):
if val == 1: return '1', 'a'
elif val == 2: return '2', 'b'
elif val == 3: return '3', 'c'
else: return 'none', 'none'
df[['stringNumber', 'smallLetter']] = df.apply(lambda x: test(x.value) , axis = 1).tolist()
다시 딕셔너리로 합체!
이렇게 원하는 컬럼들을 딕셔너리로 넣어 새컬럼 생성하기 끝!
df['properties'] = df[df.keys()].to_dict(orient='records')
728x90
반응형
'프로그래밍 > Python' 카테고리의 다른 글
python3.x 원하는 버전의 pip 설치하기 (0) | 2023.09.01 |
---|---|
[mongoDB] 맥북에 몽고DB 설치하는 방법 (1) | 2023.07.14 |
[크롤링] 파이썬으로 네이버 뉴스 크롤링하기 (0) | 2023.06.20 |
[python] xlsx Worksheet index 0 is invalid, 0 worksheets found 오류 (0) | 2023.06.01 |
[GPT] 한국어버전 GPT, beomi/KoAlpaca-Polyglot 사용해보기 (0) | 2023.05.12 |
댓글