当前位置: 首页 > 知识库问答 >
问题:

由于Unicode解码错误,无法在熊猫中打开csv文件

徐柏
2023-03-14

我保存了一个熊猫数据框作为CSV使用

df_to_save.to_csv(save_file_path)

但是当我读到它在使用

df_temp = pd.read_csv(file_path)

我收到一条错误消息说

UnicodeDecodeError:“utf-8”编解码器无法解码位置158处的字节0xbf:无效的开始字节

我已经尝试通过使用打开csv文件来强制读取时的编码为utf-8

df_temp = pd.read_csv(file_path, index_col=False, encoding="utf-8",sep=',') 

真的卡住了,有人能帮忙吗?

非常感谢

共有3个答案

南宫胡媚
2023-03-14

或者为了避免编码问题,使用EXCEL(也返回数据帧)

writer = pd.ExcelWriter('train_numeric.xlsx')
newTRAIN.to_excel(writer,'Sheet1')

然后呢

newTEST_excel = pd.read_excel('train_numeric.xlsx')
newTEST_excel.head(2)
越雨泽
2023-03-14

该字符不在UTF-8中编码。

您可以使用(文档)复制它:

b'\xbf'.decode("utf-8", "strict")
Traceback (most recent call last):

  File "<ipython-input-7-4db5a43b4577>", line 1, in <module>
    b'\xbf'.decode("utf-8", "strict")

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 0: invalid start byte

您可以尝试不同的编码,这将解决此字符的问题:

b'\xbf'.decode("ISO-8859-1", "strict")
Out: '¿'

因此,您的read_csv将更改为:

df_temp = pd.read_csv(file_path, index_col=False, encoding="ISO-8859-1") 
卢阳成
2023-03-14

更改分类数据的编码:

def my_func(df):
    for col in df.columns:
        df[col] = df[col].str.decode('iso-8859-1').str.encode('utf-8')

此函数将更改分类数据的编码。

 类似资料:
  • 我运行了以下脚本(https://github.com/FXCMAPI/FXCMTickData/blob/master/TickData34.py)并在末尾添加以下行以下载文件: 然后,我尝试使用pandas打开文件,如下所示: 然而,我得到的是: 为什么数据框是空的? 如果我在TextEdit上打开文件,前几行实际上如下所示:

  • 我清理了400个excel文件,使用pandas将它们读入python,并将所有原始数据附加到一个大df中。 然后,当我尝试将其导出到csv时: 我得到这个错误: 有人能提出一个解决这个问题的方法吗?这意味着什么? 谢谢

  • 用熊猫打开德国csv文件的最佳方式是什么? 我有一个包含以下列的德语csv文件: 基准:格式为“DD.MM”的日期。YYYY' Umlaute:带有德语特有字符的德语名称 扎伦:格式为“000.000,00”的数字 我的预期产出是: 下面提供了示例数据(见文件)。 这将引发一个: 这不会引发错误,但与我期望的输出相差甚远: 日期是字符串,而不是日期时间 现在,我有四行代码,但仍然不起作用。最后一行

  • 问题内容: 我正在学习如何在Python中打开文件,但是当我键入要打开的文件的路径时,会弹出一个窗口,说“(unicode错误)’unicodeescape编解码器无法解码位置2-3的字节:被截断的\ UXXXXXXXX转义”。它突出显示了我的第一个括号。这是代码: 问题答案: 一个明显的问题是您使用的是普通字符串,而不是原始字符串。在 会被解释为制表符,而不是文字反斜杠,其后是。 使用以下之一:

  • 我正在学习如何通过pandas将大型csv文件加载到python中。我正在使用anaconda和Python3与一台64 GB内存的pc。 贷款组合是一个很大的例子。csv数据集由2509列和100000行组成,约为1.4 GBs。 我可以毫无错误地运行以下代码: 然而,当我使用贷款组合时,例如,大型。csv文件创建一个更大的文件,即Loan\u Portfolio\u Example\u Lar

  • 我正在尝试加载csv文件 导入熊猫作为pd dfc=pd。读取_csv('data/Vehicles0515.csv',sep=',') 但是我有以下错误 ParserError:标记数据时出错。C错误:第3004427行预期有22个字段,SAW23 我已阅读包含错误\u错误\u行=错误 但这并不能解决问题 谢谢