这是来自大型csv文件的示例:
6.1;6.1;7.2;8.9;5.0;
8.9;10.0;8.9;6.1;5.0;
如果我尝试用np.loadtxt('test.csv', delimiter=';')
将其读取为numpy数组,我得到:
ValueError:无法将字符串转换为float:
并且不明白为什么?
答案 0 :(得分:17)
您需要从行中删除尾随';'
。
如果您知道有5列,则可能的解决方法是:
np.loadtxt('test.csv', delimiter=';', usecols=range(5))
或者,使用genfromtext
代替处理缺失值
np.genfromtxt('test.csv', delimiter=';')[:,:-1]
答案 1 :(得分:4)
因此,在我的情况下,csv文件的第一行写有列名。例如
Column1,Column2,Column3
5.4,2.3,2.4
6.7,3.6,9.3
因此,如docs中所述,我所要做的就是使用 skiprows 参数
因此,API调用变成了
np.loadtxt('test.csv', delimiter=',', skiprows=1)