使用genfromtxt导入带缺失值的csv数据到numpy

5 投票
2 回答
14934 浏览
提问于 2025-04-16 04:24

我有一个csv文件,内容大概是这样的(实际文件有更多的列和行):

1,2,3,4,5
6,7,8,9,10
11,12,13,14,15
16

假设这个文件的名字叫info.csv。如果我尝试用下面的方式导入这个文件:

data = numpy.genfromtxt('info.csv', delimiter = ',')

那么我就会遇到以下错误:

ValueError: Some errors were detected ! Line #4 (got 1 columns instead of 5)

如果我使用:

data = numpy.genfromtxt('info.csv', delimiter = ',', skip_footer = 1) 

那么包含数据16和数据11, 12, 13, 14, 15的两行都会被跳过。我不明白为什么包含11, 12, 13, 14, 15的那一行会被跳过。希望能得到一些帮助,告诉我如何正确使用genfromtxt来导入上面文件的前三行。

谢谢

2 个回答

0

命令 filling_values 也对我有帮助。我把它设置为零。这样每个空值就变成了零。虽然这样做可能并不总是合适,但也许对你会有帮助。

9

如果你可以忽略文件末尾的16,可以试试使用

invalid_raise布尔值,可选)这个参数。如果设置为False,它会忽略所有不完整的行,而不会抛出异常。

具体可以查看这里(这是示例之前的最后一个参数): http://docs.scipy.org/doc/numpy/reference/generated/numpy.genfromtxt.html

撰写回答