阅读Csv到namedtuple

我想加载我从这里得到的csv文件:http://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data我已经重写了这十几次,现在我得到错误说列表索引超出范围。自len(row)是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()))

回答:

打开数据用文本编辑器设置,并删除文档末尾的空白行。然后运行你的代码

回答:

这在我看来是一个语法错误:你应该做的......

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

而不是

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

以上是 阅读Csv到namedtuple 的全部内容, 来源链接: utcz.com/qa/266460.html

回到顶部