CSV文件解析(python)
我在解析包含14列的csv文件时遇到一些问题CSV文件解析(python),python,csv,Python,Csv,我在解析包含14列的csv文件时遇到一些问题 for row in training_set_data: if skiprow: skiprow = False else: for r in range(len(row)): row[r] = float(row[r]) training_set.append(row) 这似乎只是为了得到一个向量列表,但接下来我要做的
for row in training_set_data:
if skiprow:
skiprow = False
else:
for r in range(len(row)):
row[r] = float(row[r])
training_set.append(row)
这似乎只是为了得到一个向量列表,但接下来我要做的是收集每行的前13个条目,并生成一组向量,然后收集最后一列并生成一组单独的向量。对于13个输入向量,我的代码目前如下所示:
def inputVector(inputs):
for r in inputs:
inputs.pop(13)
return inputs
这是不工作,当我去打印它,它仍然是14个条目长。谁能告诉我我做错了什么?对不起,如果这个问题没有太多的意义,我是一个新的编码
编辑:csv文件的前11行和对input vecto的调用
53,1,3,130,197,1,2,152,0,1.2,3,0,3,0
42,1,4,136,315,0,0,125,1,1.8,2,0,6,1
46,1,4,140,311,0,0,120,1,1.8,2,2,7,1
42,1,4,140,226,0,0,178,0,0,1,0,3,0
54,1,4,140,239,0,0,160,0,1.2,1,0,3,0
67,0,3,115,564,0,2,160,0,1.6,2,0,7,0
65,0,3,140,417,1,2,157,0,0.8,1,1,3,0
56,0,4,134,409,0,2,150,1,1.9,2,2,7,1
65,0,3,160,360,0,2,151,0,0.8,1,0,3,0
57,0,4,120,354,0,0,163,1,0.6,1,0,3,0
55,0,4,180,327,0,1,117,1,3.4,2,0,3,1
inputV = inputVector(training_set)
问题在于此代码:
def inputVector(inputs):
for r in inputs:
inputs.pop(13)
return inputs
您正在迭代所有输入
,并从输入
中删除元素,而不是从r
中删除元素。要从每行中删除元素13,请执行以下操作:
def inputVector(inputs):
for r in inputs:
r.pop(13) # <-- replaced inputs with r
return inputs
def输入向量(输入):
对于r输入:
r、 pop(13)#问题在于以下代码:
def inputVector(inputs):
for r in inputs:
inputs.pop(13)
return inputs
您正在迭代所有输入
,并从输入
中删除元素,而不是从r
中删除元素。要从每行中删除元素13,请执行以下操作:
def inputVector(inputs):
for r in inputs:
r.pop(13) # <-- replaced inputs with r
return inputs
def输入向量(输入):
对于r输入:
r、 pop(13)#试试这样的方法:
first_13s = []
last_1s = []
for r in inputs:
first_13s.append(r[:13])
last_1s.append(r[13])
for row in training_set_data[1:]:
row = [float(r) for r in row]
training_set.append(row)
您还可以使用
训练集数据[1:]
python列表切片非常方便
您还可以使用列表理解进行浮点转换:
for r in range(len(row)):
row[r] = float(row[r])
变成
row = [float(r) for r in row]
因此,第一块可以这样做:
first_13s = []
last_1s = []
for r in inputs:
first_13s.append(r[:13])
last_1s.append(r[13])
for row in training_set_data[1:]:
row = [float(r) for r in row]
training_set.append(row)
试着这样做:
first_13s = []
last_1s = []
for r in inputs:
first_13s.append(r[:13])
last_1s.append(r[13])
for row in training_set_data[1:]:
row = [float(r) for r in row]
training_set.append(row)
您还可以使用
训练集数据[1:]
python列表切片非常方便
您还可以使用列表理解进行浮点转换:
for r in range(len(row)):
row[r] = float(row[r])
变成
row = [float(r) for r in row]
因此,第一块可以这样做:
first_13s = []
last_1s = []
for r in inputs:
first_13s.append(r[:13])
last_1s.append(r[13])
for row in training_set_data[1:]:
row = [float(r) for r in row]
training_set.append(row)
您能否在问题中包含csv数据,并显示调用inputVector
的位置以及它与培训集的关系。。。(现在我打电话只是为了检查Im解析是否正确)作为一个附带检查,您可以在问题中包含csv数据,并显示调用inputVector
的位置以及它与培训集的关系吗。。。(现在我打电话只是想确认我的解析是否正确)作为旁白,请查看内置库谢谢!我现在浪费了太多的时间:谢谢!我现在浪费了太多时间:p