[PYTHON] Python pandas to_excel 'utf8'코덱에서 바이트를 디코딩 할 수 없습니다.
PYTHONPython pandas to_excel 'utf8'코덱에서 바이트를 디코딩 할 수 없습니다.
파이썬 팬더에서 데이터 작업을하고 결과를 작성하는 데 어려움을 겪고 있습니다. 내 데이터를 CSV 파일로 읽었고 각 스크립트를 자체 CSV 파일로 내보내기 때문에 제대로 작동합니다. 최근에 워크 시트가있는 Excel 파일 1 개를 모두 내보내려고했지만 시트 중 일부가 오류를 발생시킵니다.
" 'utf8'코덱은 1 바이트 위치의 0xe9를 디코딩 할 수 없습니다. 연속 연속 바이트가 올바르지 않습니다."
Excel로 내보내기하는 데 문제가 될 수있는 문자를 찾기 시작하는 방법을 알지 못합니다. CSV로만 내보내는 이유는 확실하지 않지만
관련 선
from pandas import ExcelWriter
data = pd.read_csv(input)
writer = ExcelWriter(output) #output is just the filename
fundraisers.to_excel(writer, "fundraisers")
locations.to_excel(writer, "locations") #error
locations.to_csv(outputcsv) #works
writer.save()
문제가되는 데이터 프레임의 인쇄 헤드
Event ID Constituent ID Email Address First Name \ Last Name
f 1 A A 1
F 4 L R C
M 1 1 A D
F 4 A A G
M 2 0 R G
M 3 O O H
M 2 T E H
M 2 A A H
M 2 M M K
F 3 J E K
Location ID raised raised con raised email
a 0 0 0
a 8 0 0
o 0 0 0
o 0 0 0
o 0 0 0
t 5 0 0
o 1 0 0
o 6 a 0
o 6 0 0
d 0 0 0
엑셀 시트를보고 실제로 부분 인쇄물을 얻습니다. 첫 번째 열과 그 이후의 항목은 모두 공백이지만 이벤트, 구성 요소 및 전자 메일이 모두 인쇄됩니다.
편집 : utf8로 csv를 읽으려고하면 실패하지만 latin1로 읽습니다. to_excel 인코딩을 지정하는 방법이 있습니까? 또는 내 데이터 프레임을 utf8로 디코딩하고 인코딩합니까?
해결법
-
==============================
1.이 문제를 해결할 관리.
이 문제를 해결할 관리.
나는 문자열을 가지고 있으며 utf8로 디코드 / 인코딩 할 수있는 열을 통과하는 함수를 만들었고 이제는 작동합니다.
def changeencode(data, cols): for col in cols: data[col] = data[col].str.decode('iso-8859-1').str.encode('utf-8') return data
-
==============================
2.필자의 경우 문제는 처음에 잘못된 인코딩 (cp1252 대신 ASCII)으로 CSV 파일을 읽는 것이 었습니다. 따라서 팬더가 Excel 파일에 쓰기를 시도 할 때 디코딩 할 수없는 문자가 발견되었습니다.
필자의 경우 문제는 처음에 잘못된 인코딩 (cp1252 대신 ASCII)으로 CSV 파일을 읽는 것이 었습니다. 따라서 팬더가 Excel 파일에 쓰기를 시도 할 때 디코딩 할 수없는 문자가 발견되었습니다.
CSV 파일을 읽을 때 올바른 인코딩을 지정하여 해결했습니다.
data = pd.read_csv(fname, encoding='cp1252')
-
==============================
3.사실 ExcelWriter에 매개 변수를 전달하여 utf8 인코딩을 강제 적용하는 방법이 있습니다.
사실 ExcelWriter에 매개 변수를 전달하여 utf8 인코딩을 강제 적용하는 방법이 있습니다.
ew = pandas.ExcelWriter('test.xlsx',options={'encoding':'utf-8'}) sampleList = ['Miño', '1', '2', 'señora'] dataframe = pandas.DataFrame(sampleList) dataframe.to_excel(ew) ew.save()
-
==============================
4.가장 간단한 방법은 utf-8에서 데이터 프레임을로드하는 것입니다. 그럼 ExcelWriter 아무 문제가 그것을 저장합니다.
가장 간단한 방법은 utf-8에서 데이터 프레임을로드하는 것입니다. 그럼 ExcelWriter 아무 문제가 그것을 저장합니다.
data = pd.read_csv(path,encoding='utf-8')
-
==============================
5.출시시기는 모르지만 github 저장소로 시도해 볼 수 있습니다.
출시시기는 모르지만 github 저장소로 시도해 볼 수 있습니다.
https://github.com/jtornero/pandas
당신은 그것을 복제 할 수 있고 소스로부터 판다를 만들 수 있습니다; 문제는 거의 해결되고 작동합니다.
sampleList = ['Miño', '1', '2', 'señora'] dataframe = pandas.DataFrame(sampleList) ew = pandas.ExcelWriter('./test.xls', encoding='utf-8') dataframe.to_excel(ew) ew.save()
건배
호르헤 토로 네로
-
==============================
6.나는 똑같은 오류를 계속해서 내게 일한 유일한 제안이었습니다.
나는 똑같은 오류를 계속해서 내게 일한 유일한 제안이었습니다.
data = pd.read_csv('Filename.csv', encoding='cp1252')
고마워요!
from https://stackoverflow.com/questions/18645401/python-pandas-to-excel-utf8-codec-cant-decode-byte by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 특이 매트릭스에 대한 효율적이고 비단뱀 체크 (0) | 2018.11.14 |
---|---|
[PYTHON] 행렬 차원을 보존하면서 numpy 배열을 직렬화하려면 어떻게해야합니까? (0) | 2018.11.14 |
[PYTHON] 판다를 사용하여 행당 다른 수의 열로 CSV 가져 오기 (0) | 2018.11.14 |
[PYTHON] 파이썬 패키지 내부에서 (정적 인) 파일을 읽는 방법? (0) | 2018.11.14 |
[PYTHON] 마샬링 덤프가 더 빨라지고 cPickle이 더 빨리로드됩니다. (0) | 2018.11.14 |