본문 바로가기

Data handling

Pandas error, csv를 읽고 쓸 때 발생하는 유니코드 에러

728x90

오류

Pandas에서 csv를 읽고 쓸때 발생하는 에러

UnicodeEncodeError: 'ascii' codec can't encode characters ...

print(data.head())라고하면 출력이 안된다.

무슨 문제일까...

작동하지 않는 해결법들

1. 

저장할 때 애초에 encoding='utf-8-sig'으로 저장하기. 시도했으나 안됨

df.to_csv('blarblar.csv', encoding='utf-8-sig')

stackoverflow.com/questions/44630798/pandas-ascii-codec-cant-encode-character-in-position-ordinal-not-in-range-whi

 

Pandas: ascii codec cant encode character in position ordinal not in range - which cell?

I have great problems with Pandas and Excel. I read in an Excel document into a dataframe and that is fine. I do calculations, and all is well. Then I try to save the dataframe to inspect the results

stackoverflow.com

2.

seperator 추가하기

df.to_csv('blarblar.csv', sep='\t', encoding='utf-8-sig')

3.

def reload_csv(path="ready_for_kmeans.csv"):
    import csv
    import sys

    data = [["a", "b", u'\xe9']]
    with open(path, "w") as csv_file:
        writer = csv.writer(csv_file, quoting=csv.QUOTE_ALL)
        writer.writerows(data)
        
reload_csv()

 

결론 및 의아한 점.

UnicodeEncodeError: 'ascii' codec can't encode characters in position 192-193: ordinal not in range(128)

Jupyter notebook에선 잘 읽힘... terminal 창에서만 오류가 뜬다... 

해결을 못했지만 print(df.head())를 하지 말자 그냥.