
파이썬 CSV 파일, 한글 깨짐? 💥 완벽 해결! (pandas, utf-8 인코딩)
CSV 파일을 다루다 보면 어김없이 마주치는 난관, 바로 "한글 깨짐" 현상입니다.😂 특히 파이썬(Python)과 pandas를 사용할 때 더욱 빈번하게 발생하는데요. 도대체 왜 이런 문제가 생기는 걸까요? 🤔 그리고 어떻게 하면 이 골칫덩어리를 깔끔하게 해결할 수 있을까요?
걱정 마세요! 2025년, 여러분의 데이터 분석을 쾌적하게 만들어 줄 한글 깨짐 완벽 해결 방법 을 속 시원하게 알려드리겠습니다. 😎
왜 CSV 파일에서 한글이 깨질까? 🤔 인코딩의 세계로!

CSV 파일의 한글 깨짐 현상은 주로 인코딩(Encoding) 방식 때문에 발생합니다. 인코딩이란, 문자를 컴퓨터가 이해할 수 있는 이진수 형태로 변환하는 방식을 의미하는데요. 파일 저장 시 사용한 인코딩 방식과 파일을 읽을 때 사용하는 인코딩 방식이 다르면, 문자가 깨져서 보이는 것이죠! 😲
예를 들어, CSV 파일을 UTF-8 로 저장했는데 엑셀(Excel)에서 기본 인코딩 방식인 ANSI 로 파일을 열면 한글이 깨져 보일 수 있습니다. 마치 다른 나라 언어를 번역기 없이 읽는 것과 같은 이치죠. 😅
3가지 해결 방법! 당신에게 맞는 방법은? 🔑

이제 문제의 원인을 알았으니, 해결책을 찾아볼 차례입니다. 크게 3가지 방법이 있는데요. 하나씩 자세히 알아볼까요? 😉
1. utf-8-sig 인코딩: 엑셀에서도 OK! 👍
UTF-8 은 전 세계적으로 가장 널리 사용되는 인코딩 방식 중 하나입니다. 하지만 엑셀에서는 UTF-8로 저장된 파일을 제대로 인식하지 못하는 경우가 종종 발생하죠. 😭 이럴 때 utf-8-sig 인코딩을 사용하면 엑셀에서도 한글이 깨지지 않고 잘 보입니다! ✨
CSV 파일 쓰기 (utf-8-sig) 예제 코드:
import csv
data = [
["이름", "나이", "직업"],
["김철수", 25, "개발자"],
["이영희", 30, "디자이너"]
]
with open('output.csv', mode='w', encoding='utf-8-sig', newline='') as file:
writer = csv.writer(file)
writer.writerows(data)
print("CSV 파일이 utf-8-sig로 저장되었습니다.")
핵심은
encoding='utf-8-sig'
! 파일을 열 때 인코딩 방식을 명시적으로 지정해 주는 것이 중요합니다. 잊지 마세요! 😉
pandas에서 CSV 파일 쓰기 (utf-8-sig) 예제 코드:
import pandas as pd
df = pd.DataFrame([
["김철수", 25, "개발자"],
["이영희", 30, "디자이너"],
["박용수", 35, "인사총무"]
], columns=["이름", "나이", "직업"])
df.to_csv('output.csv', index=False, encoding='utf-8-sig')
print("CSV 파일이 utf-8-sig로 저장되었습니다.")
pandas를 사용할 때도 마찬가지입니다.
to_csv()
함수에서
encoding='utf-8-sig'
옵션을 추가하면 간단하게 해결됩니다! 참 쉽죠? 😊
2. cp949 또는 euc-kr 인코딩: 윈도우 환경에 최적화! 윈도우즈 사용자 주목! 📢
만약 윈도우(Windows) 환경에서 메모장이나 엑셀로 CSV 파일을 열었을 때 한글이 깨진다면, cp949 또는 euc-kr 인코딩을 사용해 보세요. 이 두 가지 인코딩 방식은 윈도우 환경에서 한글을 잘 지원하기 때문에, 문제 해결에 도움이 될 수 있습니다. 🤩
CSV 파일 쓰기 (cp949) 예제 코드:
import csv
data = [
["이름", "나이", "직업"],
["김철수", 25, "개발자"],
["이영희", 30, "디자이너"]
]
with open('output.csv', mode='w', encoding='cp949', newline='') as file:
writer = csv.writer(file)
writer.writerows(data)
주의! cp949와 euc-kr은 윈도우 환경에서는 잘 작동하지만, macOS나 리눅스(Linux) 환경에서는 깨질 가능성이 있다는 점을 기억해 주세요. 😥
3. 올바른 인코딩으로 읽기: 이미 깨진 파일, 되살리기! 🦸
만약 이미 한글이 깨진 CSV 파일을 가지고 있다면, 파일을 읽을 때 올바른 인코딩 방식을 지정하여 복구할 수 있습니다. 파일이 어떤 인코딩 방식으로 저장되었는지 확인한 후, 해당 인코딩 방식을 사용하여 파일을 읽으면 됩니다. 😎
CSV 파일 읽기 예제 코드:
import pandas as pd
try:
df = pd.read_csv('input.csv', encoding='utf-8') #utf-8로 먼저 시도
except UnicodeDecodeError:
try:
df = pd.read_csv('input.csv', encoding='cp949') #cp949로 시도
except UnicodeDecodeError:
df = pd.read_csv('input.csv', encoding='euc-kr') #euc-kr로 시도
print(df)
이 코드는 먼저 UTF-8로 파일을 읽어보고, 실패하면 CP949, 그래도 실패하면 EUC-KR로 시도하는 방식입니다.
마무리: 인코딩, 더 이상 두려워하지 마세요! 😎

이제 파이썬 CSV 파일의 한글 깨짐 문제, 더 이상 걱정하지 않아도 됩니다! utf-8-sig, cp949, euc-kr 등 다양한 인코딩 방식을 상황에 맞게 활용하면, 어떤 환경에서도 문제없이 한글 데이터를 다룰 수 있습니다.
데이터 분석, 이제 인코딩 걱정 없이 즐겁게 해 보세요! 😄 궁금한 점이 있다면 언제든지 댓글로 문의해주세요! 😉