2016-04-10 4 views
0

私はiso8859-9エンコードされたcsvファイルを持っていて、それをデータフレームに読み込もうとしています。 ここにコードとエラーがあります。パンダが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エンコーディングにファイルを書き出すことであろうものを見ることが

+0

(コーデックはあなたのために翻訳することができるので)作業中のコードをお持ちの場合はどうすればよいですか? – usr2564301

+0

実際、このファイルをパンダで読む必要があります。ファイルが正しくエンコードされていることを証明するコーデックコードを示しました。 – cacert

答えて

0

不可(?)

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) 

私はこのことができます願っています!