我已经搜索和搜索。我无法完全找到像我这样的问题。我确实尝试过。
我已将 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' codec can't encode error 'u\0310' in position 4174: character maps to undefined'。这是在Geany。如果我从管理员控制台打印,我会得到不同的字符和位置。我正在运行 Windows 7。数据确实包含拉丁语、德语等字符。
当我使用.query的其他标准将数据打印到屏幕上时,我实际上看到了一些特殊字符,所以我猜它只是某些字符?我查找了“u\0310”,这是某种拉丁语 i。但我可以打印其他拉丁字符。
我尝试了一些建议来尝试通过指定编码来解决此问题,但它们似乎不起作用,因为这是一个数据框。我遇到的其他问题是关于尝试打开 CSV 文件时发生的此错误。不是我在这里所经历的。
邮政编码数据只是用来学习 Pandas 的东西。将来,这个脚本会处理什么样的数据,还不得而知。我真的在寻找解决这个问题的方法,无论数据将具有什么样的字符,它都可以防止它发生。简单地删除 LOCATION 字段,这是所有这些特殊字符用于此特定数据的位置,是不可行的。
有没有人见过这个?提前致谢。