将Csv读入namedtuple

问题描述 投票:0回答:2

我正在尝试加载我从这里得到的csv文件:http://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data我已经重写了这十几次,现在我收到错误说列表索引超出范围。因为len(行)是15,所以完全让我感到困惑。我必须在这里遗漏一些明显的东西。

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()))
python csv namedtuple
2个回答
© www.soinside.com 2019 - 2024. All rights reserved.