即使为熊猫指定了编码,编码也会错误

时间:2019-11-19 15:57:19

标签: python pandas encoding

我有一个包含强调字符的CSV文件。我在使用PyCharm和Sublime打开编码时检查了编码,这是西方的:Windows 1252或ISO-8859-1。

我从此CSV创建一个熊猫数据框,然后对其进行修改,并将其导出到UTF-8文本文件。我用PyCharm和Sublime Text检查了导出的文件,不知道为什么导出的文件不在UTF-8中。

这是我的代码:

dataset= pd.read_csv("my_file.csv", sep=";", encoding="ISO-8859-1")
print(dataset.loc[0, "my_col"])
>>> "s'il vous plaît"

# Export data
with open("out.txt"), "w", newline='') as f:
    dataset.to_csv(path_or_buf=f, sep="\t", header=False, index=False, encoding="utf-8")

使用PyCharm打开“ out.txt”时,它显示s'il vous pla�t,PyCharm告诉我该文件的编码不是UTF-8。

1 个答案:

答案 0 :(得分:2)

您正在使用默认编码以文本模式写入文件对象,这优先于输出编码,并使方法encoding中的to_csv参数无效。 / p>

您应该使用类似以下的内容。

# Export data
with open("out.txt", "w", newline='', encoding="utf-8") as f:
    dataset.to_csv(path_or_buf=f, sep="\t", header=False, index=False)

或者没有文件对象:

# Export data
dataset.to_csv(path_or_buf="out.txt", sep="\t", header=False, index=False, encoding="utf-8")