繁体   English   中英

熊猫读取csv文件编码错误

[英]pandas reading csv file encoding error

我有一个iso8859-9编码的csv文件,并尝试将其读入数据帧。 这是我得到的代码和错误。

iller = pd.read_csv('/Users/me/Documents/Works/map/dist.csv' ,sep=';',encoding='iso-8859-9')
iller.head()

错误是

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 250: ordinal not in range(128)

并且下面的代码可以正常工作。

import codecs
myfile = codecs.open('/Users/me/Documents/Works/map/dist.csv', "r",encoding='iso-8859-9')
for a in myfile:
    print a 

我的问题是,为什么熊猫不能读取正确编码的文件? 有什么办法让它读起来?

当然看不到数据可能有什么问题,但是如果您可以读取数据而不会出现codecs问题,那么可能的想法是将文件写成UTF编码(?)。

import codecs
filename = '/Users/me/Documents/Works/map/dist.csv'
target_filename = '/Users/me/Documents/Works/map/dist-utf-8.csv'
myfile = codecs.open(filename, "r",encoding='iso-8859-9')
f_contents = myfile.read()

要么

import codecs
with codecs.open(filename, 'r', encoding='iso-8859-9') as fh:
  f_contents = fh.read()

# write out in UTF-8
with codecs.open(target_filename, 'w', encoding = 'utf-8') as fh:
  fh.write(f_contents)

我希望这有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM