我有一个关于这个项目的问题:
%%file data.csv
x1,x2,y
0.4946,5.7661,0
4.7206,5.7661,1
1.2888,5.3433,0
4.2898,5.3433,1
1.4293,4.5592,0
4.2286,4.5592,1
1.1921,5.8563,0
3.1454,5.8563,1
f = open('data.csv')
data = []
f.readline()
for line in f:
(x1,x2,y) = line.split(',')
x1 = float(x1)
x2 = float(x2)
y = int(y)
data.append((x1,x2,y))readline在这里的用途是什么?我看过不同的例子,但这里似乎删除了第一行。
发布于 2019-10-25 23:47:42
Python是串行读取数据的,所以如果一行被读取一次,python就会跳转到下一行。r.readline()读取第一行,因此在循环中它不会被读取。
发布于 2019-10-25 23:45:52
这正是要点:删除第一行。如果您注意到,该文件将列的名称作为其第一行(x1,x2,y),并且程序希望忽略该行。
发布于 2019-10-26 00:02:30
在循环中读取文件行之前使用readline()方法,等于:
for line in f.readlines()[1:]:
...例如,可以用来跳过表头的。
在您文件中,当您要将x1变量转换为浮点型时,它会引发ValueError,因为在第一次迭代中x1不包含数字字符串类型值"x1"。为了避免这个错误,您可以使用readline()将迭代器切换到包含纯数字的第二行。
https://stackoverflow.com/questions/58561745
复制相似问题