【发布时间】:2021-04-13 05:53:42
【问题描述】:
我正在阅读一个开头有一些 BOM  字符的网络导出文件。我能够使用 Pandas 0.25.0 处理它们:
df = pd.read_csv("filepath", encoding='windows-1252', usecols=["user_id", "date", "page"])
但是,升级到 pandas 1.1.0 会导致相同的代码出错,即未找到预期的列“user_id”,因为在较新的 pandas 版本中,它将该列视为 “user_id”。
对于想要使用更新版本的 pandas 的解决方法有什么想法吗?
它与建议的问题不同,因为它不仅仅是使用 utf-8-sig 编码的情况,因为它会引发错误,而且它适用于 Pandas 0.25,因此 Pandas 在版本中的工作方式发生了一些变化1.0 以后。我只是希望能够不读取 BOM 字符作为标题的一部分。我在下面的回答是关于如何绕过它,因为似乎没有人知道如何在新版本的 Pandas 中处理它。不知道为什么它在提供我的问题的答案并会帮助其他人解决同样的问题时被否决。
【问题讨论】:
-
我在想
BOM用于UTF-8、UTF-16和类似但不在windows-1252- 维基百科:BOM -
windows-1252不是 UTF8。windows-1252是人们通常(但错误地)调用ASCII的 Latin1 代码页。 BOM 仅用于 Unicode 文件 -
与那个链接问题不同,我尝试了两个 UTF 编码选项,但它们都不会读入文件,两者都给我一个错误,即编解码器无法解码字节:无效的起始字节这就是为什么我必须使用 windows-1252,它和 latin1 在文件中读取,然后将 BOM 字符包含在第一个标题中