UnicodeEncodeError при попытке печати Pandas DataFrame, созданного с помощью запроса в Python 3
Я искал и искал. Я не могу точно найти проблему, как у меня. Я попробовал.
Я прочитал данные Parquet в фрейм данных Pandas и использовал оператор.query для фильтрации данных.
import pandas as pd
import fastparquet as fp
fieldsToInclude = ['ACCURACY','STATE','LOCATION','COUNTRY_CODE']
criteria = 'ACCURACY == 1.0 or COUNTRY_CODE == "AD"'
pandaParqFile = fp.ParquetFile(fn = inputPath + "World Zip Code.parquet")
newDF = pandaParqFile.to_pandas()
dataset = newDF[fieldsToInclude]
extraction = dataset.query(criteria)
with pd.option_context('display.max_rows', 100, 'display.max_columns', 10):
print(extraction)
Когда он печатает, я получаю UnicodeEncodeError: кодек 'charmap' не может закодировать ошибку 'u\0310' в позиции 4174: отображение символов на неопределенное значение. Это в Джани. Я получаю другой символ и позицию, если я печатаю из консоли администратора. Я использую Windows 7. В данных есть символы латинского, немецкого и т. Д.
Я на самом деле вижу некоторые специальные символы, когда я печатаю данные на экран, используя другие критерии для.query, так что я предполагаю, что это только определенные символы? Я посмотрел вверх 'u\0310', и это своего рода латынь, я. Но я могу печатать другие латинские буквы.
Я попробовал несколько предложений, чтобы попытаться решить эту проблему с помощью указания кодировки, но, похоже, они не сработали, потому что это фрейм данных. Другие вопросы, с которыми я сталкивался, касались этой ошибки, возникающей при попытке открыть файлы CSV. Не то, что я испытываю здесь.
Данные почтового индекса - это просто то, с чем нужно изучать панд. В будущем пока неизвестно, какие данные будут обрабатываться этим сценарием. Я действительно ищу решение этой проблемы, которое предотвратит ее возникновение независимо от того, какие символы будут иметь данные. Простое удаление поля LOCATION, где находятся все эти специальные символы для этих конкретных данных, нецелесообразно.
Кто-нибудь видел это раньше? Заранее спасибо.
1 ответ
Вам необходимо указать utf-8 в качестве формата кодировки.
Пытаться:
с pd.option_context('display.encoding', 'UTF-8', 'display.max_rows', 100, 'display.max_columns', 10): печать (извлечение)