Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert string to float pandas

Tags:

python

pandas

Simple question: I have a dataset, imported from a csv file, containing a string column with numeric values. After the comma are decimal places.

I want to convert to float. Basically,it's just this:

x = ['27,10083']
df = pd.DataFrame(x)
df.astype(float)

Why does this not work and how to fix this simple issue?

Thanks in advance.

like image 347
SQL_M Avatar asked Oct 15 '17 18:10

SQL_M


1 Answers

Assign output with replace:

df = df.replace(',','.', regex=True).astype(float)

If want specify columns for converting:

cols = ['col1','col2']
df[cols] = df[cols].replace(',','.', regex=True).astype(float)

Another solution is use parameter decimal=',' in read_csv, then columns are correctly parsed to floats:

df = pd.read_csv(file, decimal=',')
like image 58
jezrael Avatar answered Sep 30 '22 12:09

jezrael