2017-02-17 2 views
0

Я новичок в Python, и я пытаюсь прочитать большой файл excel в python. Я преобразовал файл xlsx в csv для работы с pandas. Я написал код ниже:Чтение больших файлов excel в Python и UnicodeDecodeError:

import pandas as pd 
pd.read_csv('filepath.csv') 
df = csv.parse("Sheet") 
df.head() 

Но это дает эту ошибку: UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 28: character maps to <undefined>

Можете ли вы сказать мне, почему он дает эту ошибку? Или у вас есть советы по чтению больших файлов excel? Я также пытался работать с openpyxl модулем, но я не мог использовать read_only из версии моего Python. (Я использую Python 2.7.8)

+0

Вы пробовали 'pd.read_excel' еще? –

+0

Я пробовал, но это так медленно – OykuA

+0

Что я обычно делаю, это сохранить excel в текстовом файле Unicode, а затем использовать файл pd.read_csv (filename, sep = '\ t, encoding =' utf-16-le '), чтобы открыть текстовый файл. –

ответ

0

Попробуйте с

pd.read_csv('filepath.csv',encoding ='utf-8') 

Есть много другого кодирования методы, такие как encoding = 'iso-8859-1' или encoding = 'cp1252' или encoding = 'latin1'. Вы можете выбрать согласно вашему требованию.

+0

Когда я это делаю, возникает эта ошибка: CParserError: ошибка для токенизации данных. C: Ожидаемые 1 поля в строке 3, пила 28 – OykuA

+0

Попробуйте использовать разделитель. 'pd.read_csv ('filepath.csv', sep = None, encoding = 'utf-8')' –

+0

Это сработало, спасибо. Но он просто читает 5 строк, в моем файле много более 5 строк. – OykuA

0

Сохраните Excel в текстовом файле Unicode с помощью Microsoft Excel.

enter image description here

Откройте файл с этой строкой:

df = pd.read_csv(filename,sep='\t',encoding='utf-16-le') 
print(df.head()) 
+0

Как сохранить Excel в текстовом файле Unicode? – OykuA

+0

Перейти к сохранению как опция и выберите ** Юникод Текст ** как ** Сохранить как тип **. Посмотрите изображение, которое я добавил в ответ, который я разместил. –

Смежные вопросы