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.
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=',')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With