中文的csv文件的编码改成utf-8的方法

直奔主题:把包含中文的csv文件的编码改成utf-8的方法:

https://stackoverflow.com/questions/191359/how-to-convert-a-file-to-utf-8-in-python

 

啰嗦几句:

在用pandas读取hive导出的csv文件时,经常会遇到类似UnicodeDecodeError: 'gbk' codec can't decode byte 0xa3 in position 12这样的问题,这种问题是因为导出的csv文件包含中文,且这些中文的编码不是gbk,直接用excel打开这些文件还会出现乱码,但用记事本打开这些csv则正常显示,然后用记事本另存为UTF-8之后,用excel打开也能够正常显示,并且用pandas读取时指明encoding='utf-8'也能正常读取了。如果读取批量的csv时,或者csv的行数达到数百万时,就不能通过记事本另存为来更改encoding了,那应该怎么做来保证pandas能正常读取这些csv呢?

 

1.读取时不加encoding参数,则默认使用gbk编码来读取数据源文件,即默认数据源文件的编码为gbk:

import pandas as pd

df=pd.read_csv(data_source_file)

2.如果源文件的中文不是gbk编码,则可能会报错:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xa3 in position 12

那么可以试试utf-8编码:

df=pd.read_csv(data_source_file,encoding='utf-8')

如果仍然报错,提示utf-8也不行:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa3 in position 12

那么说明文件中的中文编码不是utf-8,这时我们就要确定源文件的中文到底使用哪一种编码。

3.常见的中文编码包括:utf-8,gbk,gb2312,gb18030,cp935,big5等,我们可以逐一试过去,确定之后再修改read_csv()的encoding参数值即可。

4.如果只需要读取一个csv文件,逐个试的方法是可行的,但是如果需要循环读取多个csv文件,而每个csv文件的编码都可能不一样,那么最好还是先把所有这些csv统一转为utf-8,再集中进行读取,转换文件的编码格式需要用到

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSV(逗号分隔值)是一种常用的数据交换格式,它在数据处理和导出时非常常用。但是CSV默认编码格式是ASCII编码,不支持特殊字符和非英文字符集。所以,在处理一些非英文字符集较多的CSV文件时,我们需要将其编码格式由ASCII改为UTF-8编码。 下面是将CSV格式改为CSV UTF-8编码的步骤: 步骤一:打开CSV文件并备份原文件 在操作任何文件之前,我们都需要备份文件,以免意外删除或错误修改导致数据丢失。下一步是打开CSV文件,这可以使用Microsoft Excel或文本编辑器。 步骤二:另存为CSV UTF-8 在Excel中,选择文件->另存为,将文件类型更改为CSV UTF-8(逗号分隔) (* .csv),然后选择保存路径,命名为新的CSV UTF-8文件。 在文本编辑器中,可以使用"另存为"选项将CSV文件另存为UTF-8编码格式。在保存时,确保您选择了UTF-8编码选项。 步骤三:检查并验证 完成保存之后,打开新的CSV UTF-8文件并检查数据是否正确表示。如果CSV文件中包含数据异常,我们需要回到原始文件并尝试对其进行更改。 总结 以上就是将CSV格式改为CSV UTF-8编码的步骤。使用Microsoft Excel或文本编辑器,我们可以轻松地更改CSV文件编码格式。但是,尝试转换更大和更复杂的CSV文件时,需要考虑服务端和客户端的性能,确保服务器负载和客户端资源消耗处于可接受的范围内。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值