2016-05-02 16 views
-1

2つのcsvファイルをマージするためのコードを実行していますが、csvファイルの読み込み中にエラーが発生しました。私のコード:csvファイルを読み込む際にエラーが発生しました:utf-8 codec cant decode

import csv 
import pandas as pd 
s1= pd.read_csv(".../noun.csv") 
s2= pd.read_csv(".../verb.csv") 
merged= s1.merge(s2, on=("userID" ,"sentID"), how ="inner") 
merged.to_excel(".../merge1.xlsx",index = False) 

がエラー:

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

私のコンテンツの例は次のとおりです。

verb file 

userID sentID verb 
['3477' 1  ['am', 'were', 'having', 'attended', 'stopped'] 
['3477' 2  ['felt', 'thrusting'] 

noun file 
userID sentID Sentences 
['3477' 1 Thursday, 
['3477' 1 November 
+0

あなたのファイルはUTF-8エンコードされていません。実際にファイルの内容と一致する別のエンコーディングを選択します。 –

+0

あなたの質問を編集し、入力の関連部分を追加してください。 –

+0

どのようなものが適切であるかをどのように知ることができますか?あなたは何か考えていますか? –

答えて

0

あなたはたとえばcchardetのために、エンコーディングを検出しようとするライブラリを使用することができます。

pip install cchardet 

Python 2.Xを使用するには、CSVライブラリのbackportも必要です。 Pythonの2のcsvファイルはそうではない彼らは、ネイティブにUnicodeをサポートしています。

pip install backports.csv 

は、次に、あなたのコードの中で、あなたがこのような何か行うことができます。

import cchardet 
import io 
from backports import csv 

# detect encoding 
with io.open(filename, mode="rb") as f: 
    data = f.read() 
detect = cchardet.detect(data) 
encoding_ = detect['encoding'] 
# retrieve data 
with io.open(filename, encoding=encoding_) as csvfile: 
    reader = csv.reader(csvfile, ...) 
... 

を私はパンダを知らないが、あなたのような何かを行うことができますこれは:

# retrieve data 
s1= pd.read_csv(".../noun.csv", encoding=encoding_) 
関連する問題