2016-05-16 18 views
0

私は22行から、次のエラーを取得NB分類器とイムをテストするために(下)いくつかのサンプルコードを使用しています:csv.Error:改行文字

_csv.Error: new-line character seen in unquoted field - do you need to open the file in universal-newline mode? 

これは、CSVのサンプル列でありますファイル:コードの

b8:27:eb:38:72:a7,df598b5eb8f4,5/9/16 14:47,154aec250ef6,-84,outside 

サンプル:

from sklearn.preprocessing import LabelBinarizer 
import numpy as np 
from sklearn import naive_bayes 
import csv 
import random 
from sklearn import metrics 
import urllib 
url = "example.com" 
webpage = urllib.urlopen(url) 
# download the file 
#raw_data = urllib.urlopen(url) 

datareader = csv.reader(webpage) #line 22 is this one 

ct = 0; 
for row in datareader: 
    ct = ct+1 
webpage = urllib.urlopen(url) 
datareader = csv.reader(webpage) 
data = np.array(-1*np.ones((ct,6),float),object); 
k=0; 
for row in datareader: 
    data[k,:] = np.array(row) 
    k = k+1; 

featnames = np.array(['unti','dongle','timestamp','tracker','rssi','label'],str) 

keys = [[]]*np.size(data,1) 
numdata = -1*np.ones_like(data); 

for k in range(np.size(data,1)): 
    keys[k],garbage,numdata[:k] = np.unique(data[:,k],True,True) 

numrows = np.size(numdata,0); 
numcols = np.size(numdata,1); 
numdata = np.array(numdata, int) 
xdata = numdata[:,:-1] 
ydata = numdata[:,-1] 

lbin = LabelBinarizer(); 
for k in range(np.size(xdata,1)): 
if k==0: 
    xdata_ml = lbin.fit_transform(xdata[:,k]); 
else: 
    xdata_ml = np.hstack((xdata_ml,lbin.fit_transform(xdata[:,k]))) 
ydata_ml = lbin.fit_transform(ydata) 


allIDX = np.arrange(numrows); 
random.shuffle(allIDX); 
holdout_number = numrows/10; 
testIDX = allIDX[0:holdout_number]; 
trainIDX = allIDX[holdout_number:]; 

xtest = xdata_ml[testIDX,:]; 
xtrain = xdata_ml[trainIDX,:]; 
ytest = ydata[testIDX]; 
ytrain = ydata[trainIDX]; 

mnb = naive_bayes.MultinomialNB(); 
mnb.fit(xtrain,ytrain); 
print "Classification accuracy of MNB =", mnb.score(xtest,ytest) 

誰も私がエラーを見つけて修正を提案助けることができますか?

答えて

0

窓を使用していますか?はい、これはによって解決することができる場合は、次の

datareader = csv.reader(webpage, dialect=csv.excel_tab) 
+0

nope - macのAnaconda – DataGuy

+0

hm ..奇妙な..あなたは 'dialect' kwargを追加しようとしましたか? – silviomoreto

+0

はい私はそれを試してみました – DataGuy

0

ここで答えCSV new-line character seen in unquoted field errorのいくつかは、MAC

にCSVを参照してください、あなたは手動でMACにファイルをダウンロードして次の操作を実行しようとしようとすることができますローカルファイルとしてファイル:

1)CSVなどのファイルを保存したCSV(MS-DOSカンマ区切り)

2)としてファイルを保存します(Windowsのカンマ区切り)

3)「RU」について、以下のスクリプトを

with open(csv_filename, 'rU') as csvfile: 
    csvreader = csv.reader(csvfile) 
    for row in csvreader: 
     print ', '.join(row) 

説明を実行します。https://www.python.org/dev/peps/pep-0278/

をPythonでは、オープンユニバーサル改行のサポート(と)モードパラメータも、「U」することができ、「入力のためのオープンを意味普遍的な改行解釈を持つテキストファイルとして "。モード "のrU" も "RB"

ユニバーサル改行のサポートはCで実装されて

理論的根拠はなく、Pythonでとの対称性のために、許可されています。 我々は外国改行 大会でファイルがインポート-できるようにしたいので、これはこれはPython Libディレクトリは、Mac OS Xに リモートファイルシステム接続上で共有、またはMacPythonの とUnix-Pythonのの間ですることができ、実行されます