Home > database >  Julia: Convert Dataframe with multiple string columns to float array
Julia: Convert Dataframe with multiple string columns to float array

Time:10-13

I have a DataFrame which has many String columns where they should be float64 instead. I would like to transform all the column at once and transform the dataframe into a float array. How can do this? Importantly, there are some float columns too.

df = DataFrame(a=["1", "2", "3"], b=["1.1", "2.2", "3.3"], c=[0.1, 0.2, 0.3])
# Verbose option
df.a = parse.(Float64, df.a)
df.b = parse.(Float64, df.b)
matrix = Matrix{Float64}(df)
# Is is possible to do this at once especially when there are float columns too?
# Here parse.(Float64, df.c) would throw an error

CodePudding user response:

One way of doing this is by looping over the String columns:

for cnames(df, String)
    df[!, c]= parse.(Float64, df[!, c])
end

Note that you don't need Matrix{Float64} if you've already turned everything into Floats, just Matrix(df) will do.

  • Related