2021년 5월 26일 수요일

Python - Fixing trash character in dataframe export to csv files

Python 에서 dataframe 을 csv로 변환하는 과정을 진행시 dataframe을 그대로 출력시 문자가 잘 출력되나 csv 파일등으로 출력하면 에러가 발생할때 사용한다

***문자가 정상적으로 출력됨을 알수 있다***

df_child_care_center.to_csv("./### child care center in seoul.csv",encoding='utf-8')
보통 이런식으로 utf-8옵션을 사용하는데

***알수없는 문자들로 출력됨***

df_child_care_center.to_csv("./### child care center in seoul.csv",encoding='utf-8-sig')
utf-8-sig 옵션을 사용하면 수정이 가능하다

***정상적으로 출력되었다**

잘못 출력되는 이유
=UTF-8로 적었지만 CP1252로 인코딩이 적용되서=

대부분 editor 에서 사용되는 기본적으로 ANSI 인코딩을 사용함 (윈도우의 경우 CP1252) (UTF-8이 아님)

이때 파일의 시작 부분에 order mark (BOM) 문자열이 있는게 중요한데 UTF-8에서는 BOM 문자열이 의미가 없어서 넘어감 (다른 인코딩에서는 BOM 이 서명(signature)처럼 작동함) 따라서 utf-8-sig 을 입력해서 강제로 인식하게 하는것

댓글 없음:

댓글 쓰기