我有一个数据csv文件,前几行正在存储信息。
格式如下:
info1, aa
info2, bb
info3, cc
col1, col2, col3
x1, y1, z1
x2, y2, z2
如果我使用numpy.genfromtxt()
,由于前三行和其余三行之间的列不同,它将显示错误。
我可以使用numpy.genfromtxt(skip_header=3)
读取数据,并使用numpy.genfromtxt(skip_footer= )
读取信息。
我想知道是否有更好的方法?
答案 0 :(得分:0)
当我需要这样的解决方案并且事先不知道标题块中的行数时,我只会读取第一列。然后,我在该列中查找空白行,该行告诉我节边界在哪里。最后,我通过传递适当数量的行来跳过并读取每次读取的全部数据。
如果文件很大并且我很在乎效率,那么我会open()
对其进行一次处理,然后将该文件句柄传递给genfromtxt()
,并在每一节中增加行数,这意味着整个操作仅需花费两步传递文件(因为文件句柄保持打开状态,我们要做的就是在文件上调用readline()
来跳过各节之间的空行)。