• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

[2/2] 강의 관련 질문 드립니다. (csv 파일 실행시 글자깨짐)

21.06.12 16:31 작성 조회수 712

1

안녕하세요 선생님

'[2/2] 이거 하나면 코드 한줄로 krx 전체 종목 수집 가능?!' 강의 수강 후 csv 파일을 실행해보니

글자가 모두 깨져나오는 현상이 확인되는데 to_csv 할때 별도의 조치를 해주어야 하는걸까요?

쥬피터 노트북에서 pd.read_csv() 할때는 정상적으로 조회되고 있습니다.

답변 1

답변을 작성해보세요.

0

안녕하세요.

pandas의 to_csv 는 인코딩 기본값이 utf-8로 되어 있어요.

그래서 엑셀에서 열려면 인코딩을 utf-8로 다시 지정해서 열어야 하는데 pandas 에서 저장할때 엑셀에서 바로 열리도록 인코딩을 설정할 수도 있습니다.

df.to_csv("파일명", encoding="cp949") 로 저장해 보세요.

엑셀에서 한글인코딩이 깨지지 않고 바로 보일거에요.

그 대신 해당 파일을  pandas 에서 읽어올 때도 read_csv 에  encoding="cp949" 옵션을 추가해서 불러와야 합니다.

pd.read_csv("파일명",  encoding="cp949")

뀨구기님의 프로필

뀨구기

질문자

2021.06.12

답변해주셔서 감사합니다.

추가로 아직 뒷부분 내용을 모르지만,

저는 일할때 보통 엑셀 export 후 데이터 작업하는게 익숙해서 그러는데

일반적으로 cp949 를 활용하는 경우가 많을까요

아니면 파이썬 내에서 데이터를 처리하니까 활용되지 않는 경우가 많을까요...?

아 그리고 df_krx.to_csv("krx.csv", index=False, encoding="cp949")

이렇게는 안되는거 같은데 파일명 뒤에 옵션은 하나만 오는게 맞을까요?

안녕하세요. 인코딩은 어떤게 많다기 보다는 적합한걸 찾으시는 걸 추천해요.

엑셀을 사용할 일이 많다면 cp949로 저장할 때 저장하시고 불러올때도 cp949를 사용하신다면 크게 불편함은 없을거에요.

utf-8인코딩은 엑셀에서 읽어오려면 별도의 설정이 필요하기 때문에 편의에 따라 인코딩 사용을 추천해요!

뀨구기님의 프로필

뀨구기

질문자

2021.06.12

df.to_csv("filename.csv", index=False, encoding="utf-8-sig")

이렇게 하면 정상적으로 저장되고 cp949 는 에러 발생하는데 무슨차이인지 헷갈리네요 ㅠㅜ

안녕하세요.

인코딩 방식의 차이인데요. cp949로 인코딩을 지정했는데 오류가 난다면 인코딩 할 수 없는 문자가 섞여있기 때문이에요. 그래서 utf-8-sig 로 저장하면 인코딩이 오류 없이 저장이 되기도 합니다.

cp949로 인코딩 할 수 없는 문자란 눈에 보이지 않는 BOM문자를 의미하는데요.

아래 문서를 참고해 보세요.

[바이트 순서 표식 - 위키백과, 우리 모두의 백과사전](https://ko.wikipedia.org/wiki/%EB%B0%94%EC%9D%B4%ED%8A%B8_%EC%88%9C%EC%84%9C_%ED%91%9C%EC%8B%9D)

또 인코딩에 대한 내용은 아래 링크의 영상을 보시는 걸 추천해요.

[(풀버젼) Ep(39) 알아둬도 쓸데없는 인코딩의 역사 - YouTube](https://www.youtube.com/watch?v=DLdYa_w_7zs)