Pandas读取txt格式的csv文件报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2

Pandas读取txt格式的csv文件报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 24: invalid start byte

使用pandas读取gagesII水文数据的txt格式的csv文件

basin_class=pd.read_csv(basin_class_fp,na_values="n/a")

出现报错:
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xb2 in position 24: invalid start byte
上网搜索,解决方案有写脚本,然后查看是部分还是整体编码问题的,还有在参数中写“ignore”解决的。设置ignore虽然没有报错了,但是读出的表格却不能对齐。由于水平有限,想快速解决问题,而网上又没有decode bype为0xb2的相关资源。最后还是在python的documentation里找到了齐全的encoding类型。并找到了这句:
Codec.encode(input[, errors])
Encodes the object input and returns a tuple (output object, length consumed). For instance, text encoding converts a string object to a bytes object using a particular character set encoding (e.g., cp1252 or iso-8859-1).
也就是说txt使用了特别的编码方式把字符串对象编码成了字节对象,编码方式为cp1252和iso-8859-1。果然当我设置encoding=cp1252之后,问题解决了,得到了对齐的表格。

basin_class = pd.read_csv(basin_class_fp,encoding='cp1252',na_values="n/a")

总结下来,出现这种UnicodeDecodeError编码错误,八成需要设置encoding方式,不妨参考python的documentation见参考文献。
介于本人非计算机专业,写代码以应用为目的,错误之处欢迎大佬指正。
(本文原创,转载请附链接)

[1]https://docs.python.org/3.7/library/codecs.html#codecs.StreamWriter

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值