파이썬(Python)&판다스(Pandas)&Polars

[Pandas] 한글 깨짐 방지를 위해 인코딩은 'UTF-8-SIG'로 저장하기

송채채 2022. 10. 24. 15:46

pandas를 사용한지 2년이 넘었지만, 사소한 부분에서 모르고 넘어간 부분이 많았다.

한글 인코딩은 'utf-8' 또는 'cp949'로 저장된 데이터가 많은것은 알고있었지만, 

흔히 'utf-8'로 저장한 csv나 excel 파일을 열면 한글 깨짐의 상태로 열린다.

 

encoding 오류

MS excel 365에서 깨지지 않게 보기 위해선 '데이터 > 데이터 가져오기 > 파일에서 > 텍스트/csv에서'를 클릭해

불러오고자하는 데이터를 선택하면 된다.

 

 

그 동안 이 방법으로 번거롭게 열었는데, 최근 'UTF-8-SIG'로 저장하면 파일형식간의 호환을 지원해주어 깨지지않고 바로 열 수 있다는 걸 알게 됐다.

 

import pandas as pd

# 데이터 프레임 만들기
df = pd.DataFrame(data=sample_data)
# 또는 파일불러오기
df = pd.read_csv('파일경로')

#파일 저장하기
df.to_csv('파일경로/파일제목.csv', 
	encoding = 'utf-8-sig', # 호환가능한 형식으로 인코딩
            index = False) # 기본으로 생기는 인덱스 컬럼을 제외하고 저장
            
#데이터 불러올 때, utf-8로 열리지 않을 경우, 한글 인코딩은 'euckr', 'cp949'도 많이 사용됨

 

참고 블로그

- https://yganalyst.github.io/data_handling/Pd_4/

 

[Pandas 기초] 다양한 데이터 읽고(read) 쓰기(write)

판다스에서 제공하는 데이터 읽고 쓰기 기능을 알아보자

yganalyst.github.io

- http://blog.wystan.net/2007/08/18/bom-byte-order-mark-problem

 

wystan's tales > UTF-8 인코딩에서의 BOM(Byte Order Mark) 문제

다양한 언어를 표현할 수 있도록 해주는 유니코드(Unicode) 인코딩에는 여러가지 방식이 있습니다. 최근 웹 환경에서 많이 쓰이는 UTF-8을 비롯해서 UTF-16, UTF-32 등이 이런 인코딩 방식을 나타내지요

blog.wystan.net

 

반응형