2017-12-27 27 views
0

ここから取得したCSVファイルをロードしようとしています。http://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.dataこのダースを書き直しました。リストのインデックスが範囲外であるとエラーが表示されています。私はlen(行)が15歳なので完全に私をうんざりさせます。Csvをnamedtupleに読み込む

import csv 
from collections import namedtuple 

fields = ('age', 
     'workclass', 
     'fnlwgt', 
     'education', 
     'education_num', 
     'marital_status', 
     'occupation', 
     'relationship', 
     'race', 
     'sex', 
     'capital_gain', 
     'capital_loss', 
     'hours_per_week', 
     'native_country', 
     'target') 

CensusRecord = namedtuple('CensusRecord', fields) 

with open("./data/adult_data.csv","r") as f: 
    r = csv.reader(f, delimiter=',') 

    for row in r: 
      data.append(CensusRecord(
      age    = int(row[0]), 
      workclass  = row[1].strip(), 
      fnlwgt   = float(row[2].strip()), 
      education  = row[3].strip(), 
      education_num = int(row[4]), 
      marital_status = row[5].strip(), 
      occupation  = row[6].strip(), 
      relationship  = row[7].strip(), 
      race    = row[7].strip(), 
      sex    = row[9].strip(), 
      capital_gain  = int(row[10]), 
      capital_loss  = int(row[11]), 
      hours_per_week = int(row[12]), 
      native_country = row[13].strip(), 
      target   = row[14].strip())) 

答えて

1

オープンデータ、および削除しますドキュメントの末尾に空白行を挿入します。次にコードを実行してください

+0

あなたは英雄です。どうもありがとうございました :) – Tummomoxie

0

は、それは私の意見では、構文エラーです:あなたがすべき...

data.append(CensusRecord("age" = <your_data>, ...) 

代わりのテキストエディタで設定

data.append(CensusRecord(age = <your data>, ...) 
+0

ありがとう、助けを借りて、nixは問題が見つかりました。私のCSVの底には空白がありました。 – Tummomoxie

関連する問題