안녕하세요, 오늘은 csv 파일을 불러와서 판다스 데이터프레임을 생성해보겠습니다.
사용할 csv 파일은 공공데이터포털에서 다운로드 받은 '서울특별시 송파구_체육시설' 데이터 (csv파일) 를 사용하겠습니다.
pd.read_csv() 함수를 사용하면 csv, text 등의 형식의 파일들을 불러와서 데이터프레임으로 생성할 수 있습니다.
import pandas as pd
df = pd.read_csv('서울특별시 송파구_체육시설_20210916.csv')
하지만 위의 코드를 실행하면 다음과 같은 에러가 발생합니다.
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbe in position 0: invalid start byte
이는 데이터 내에 한글이 포함되어 있어서 발생하는 문제입니다.
해결 방안은 인코딩을 'euc-kr' 또는 'cp-949'로 설정해주는 것입니다.
df1 = pd.read_csv('서울특별시 송파구_체육시설_20210916.csv', encoding='cp949')
df2 = pd.read_csv('서울특별시 송파구_체육시설_20210916.csv', encoding='euc-kr')
df1 은 'cp949'로 인코딩한 데이터프레임이며, df2는 'euc-kr'로 인코딩한 데이터프레임입니다.
두 데이터프레임 모두 정상적으로 출력되는 것을 확인할 수 있습니다.
그리고 'cp949'와 'euc-kr' 간에 어떤 차이가 있는지 알아보았습니다.
'CP949'는 마이크로소프트사가 도입한 코드페이지로, '확장 완성형' 또는 통합형 한글 코드라는 명칭으로 확장되어 현대의 모든 한글을 수용할 수 있다고 합니다.
CP949 인코딩은 EUC-KR의 확장이며, 하위 호환성이 있습니다.
EUC-KR는 대표적인 한글 완성형 인코딩이며, 보통 '완성형'이라고 불립니다.
참고 사이트 :
https://ko.m.wikipedia.org/wiki/%EC%BD%94%EB%93%9C_%ED%8E%98%EC%9D%B4%EC%A7%80_949
https://ko.m.wikipedia.org/wiki/EUC-KR
'Python' 카테고리의 다른 글
[Python] Tensorflow 분류모델에서 훈련결과 추론해보기 (0) | 2023.01.06 |
---|---|
[Python] Colab을 사용하는 법 & 구글 드라이브 연동하기 (0) | 2023.01.03 |
[ Python ] 판다스 데이터프레임을 csv 파일로 저장하기 (0) | 2022.12.20 |
[Python] json encode, decode하기 (0) | 2022.11.22 |
[Python] for문 사용하기 (0) | 2022.11.07 |