관심있는 것들 정리

pandas에서 저장한 UTF8형식 csv 파일을 MAC Excel에서 제대로 못 읽을 때 대처방법 본문

카테고리 없음

pandas에서 저장한 UTF8형식 csv 파일을 MAC Excel에서 제대로 못 읽을 때 대처방법

내공강화 2023. 2. 22. 20:42

혼자 공부하는 데이터 분석 with 파이썬 (한빛미디어) 를 보면서 예제를 확인하다가, 일부 내용을 Excel로 열어서 확인을 해 보려했는데, MAC Excel에서 파일을 읽으면 파일이 다 깨지는 문제가 발생했다.

내용은 Jupyter notebook에서 pandas로 정상적으로 읽어들일 수 있는 파일로, 구글링을 해 보니 UTF8 포맷(UTF8 중에서 한글과 같은 2 bytes 포맷 파일이 그런듯...)의 csv 파일을 제대로 못 읽어들인다는 글들이 있어, 여기저기 구글링한 내용들을 한꺼번에 정리해 둔다.

1. terminal에서 해당 파일을 iconv를 이용해서 다음과 같이 별도의 파일로 저장한다.

( printf "\xff\xfe" ; iconv -f utf-8 -t utf-16le ns_book7.csv ) > ns_book7_2.csv

2. 이렇게 하면,  ns_book7_2.csv 파일이 생성되고 해당 파일을 엑셀에서 열면 정상적으로 내용이 출력되는 것을 확인할 수 있다. 파일을 열어 데이터->텍스트나누기 기능을 이용해 텍스트를 , 를 기준으로 분리해주면 다음과 같다.

3. 필요한 내용을 수정 후, 다시 cvs 파일로 저장 후 pandas에서 읽으려하면, 에러가 발생한다. 그래서 다음과 같이  Excel의기본 설정 -> 공유 개인 정보 -> 호환성으로 가서 다음 형식으로 파일 저장이라는 부분을 ‘CSV UTF-8(쉼표로 분리)’ 변경한 후 다른 이름으로 저장하기를 하여 ns_book7_3.csv로 저장한다.

4. 이제 pandas의 read_csv() 를 이용하여 읽어들여보면, 또 에러가 발생한다...

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 0: invalid start byte

5. 다음과 같이 read_csv()에 encoding과 low_memory option을 명시적으로 설정하여 파일을 읽어들이면 정상적으로 csv 파일을 읽어들이 수 있다

 

반응형