【发布时间】:2013-06-13 14:59:39
【问题描述】:
当我尝试使用 numpy 的 loadtxt 函数从 CSV 文件中导入数据时,我遇到了一个小问题。这是我拥有的数据文件类型的示例。
称之为“datafile1.csv”:
# Comment 1
# Comment 2
x,y,z
1,2,3
4,5,6
7,8,9
...
...
# End of File Comment
我认为适用于这种情况的脚本如下所示:
import numpy as np
FH = np.loadtxt('datafile1.csv',comments='#',delimiter=',',skiprows=1)
但是,我收到一个错误:
ValueError: could not convert string to float: x
这告诉我 kwarg 'skiprows' 没有跳过标题,它跳过了第一行 cmets。我可以简单地确保 skiprows=3,但复杂的是我有大量文件,这些文件不一定在文件顶部都有相同数量的注释行。如何确保在使用 loadtxt 时只在这种情况下获取实际数据?
附: - 我也愿意接受 bash 解决方案。
【问题讨论】:
-
我还应该补充一点,我已经在 python 中尝试了各种解决方案来解析每一行以获取注释或字符,但很快意识到这种性质的任何东西都不可能起作用,因为 loadtxt 在非常开始。
标签: python bash csv numpy import-from-csv