theta
theta

Reputation: 25601

numpy.loadtxt, ValueError: could not convert string to float

This is sample from large csv file:

6.1;6.1;7.2;8.9;5.0;
8.9;10.0;8.9;6.1;5.0;

If I try to read it to numpy array with np.loadtxt('test.csv', delimiter=';') I get:

ValueError: could not convert string to float:

and don't understand why?

Upvotes: 32

Views: 145488

Answers (2)

Rohit Rokde
Rohit Rokde

Reputation: 626

So in my case the csv file had column names written in the first row. e.g.

Column1,Column2,Column3
5.4,2.3,2.4
6.7,3.6,9.3

So as given in the docs, all I had to do was use the skiprows parameter

So the API call became,

np.loadtxt('test.csv', delimiter=',', skiprows=1)

Upvotes: 18

wim
wim

Reputation: 362707

You need to strip off the trailing ';' from the lines.

A possible workaround if you know you have 5 columns is:

np.loadtxt('test.csv', delimiter=';', usecols=range(5))

Or, use genfromtext instead which handles missing values

np.genfromtxt('test.csv', delimiter=';')[:,:-1]

Upvotes: 44

Related Questions