[英]Encoding error when reading csv file containing pandas dataframe
我使用df.to_csv()
将数据帧转换为csv文件。 在python 3下, pandas doc声明其默认为utf-8编码。
但是,当我在同一文件上运行pd.read_csv()
时,出现错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xae in position 8: invalid start byte
但是将pd.read_csv()
与encoding="ISO-8859-1"
一起使用是pd.read_csv()
。
这是什么问题,我该如何解决,这样才能以一致的编码方式写入和加载文件?
请尝试使用encoding ='unicode_escape'读取数据。
这是未使用pandas.to_csv
明确使用encoding
参数时,使用某些unknown(?)编码的熊猫的具体示例。
0x92是'(看起来像撇号)
import pandas
ERRORFILE = r'written_without_encoding_parameter.csv'
NO_ERRORFILE = r'written_WITH_encoding_parameter.csv'
df_dummy = pandas.DataFrame([u"Yo what's up", u"I like your sister’s friend"])
df_dummy.to_csv(ERRORFILE)
df_dummy.to_csv(NO_ERRORFILE, encoding="utf-8")
df_no_error_with_latin = pandas.read_csv(ERRORFILE, encoding="Latin-1")
df_no_error = pandas.read_csv(NO_ERRORFILE)
df_error = pandas.read_csv(ERRORFILE)
>>> UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 18: invalid start byte
因此,即使熊猫文档说默认情况下使用它,您似乎也必须对to_csv
显式使用encoding="utf-8"
。 或者,将encoding="Latin-1"
与read_csv
一起read_csv
。
更令人沮丧的是...
df_error_even_with_utf8 = pandas.read_csv(ERRORFILE, encoding="utf-8")
>>> UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 18: invalid start byte
我正在使用Windows 7,Python 3.5,熊猫0.19.2。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.