我有一个string
格式的数据,当我使用DataFrame
时,它将是Substring
格式,但是我想要的是Float
格式。我该怎么办?
x = defect_positions[1:3]
>>>SubString{String}["4.71801", "17.2815", "0.187765"]
>>>SubString{String}["17.3681", "17.1425", "6.13644"]
>>>SubString{String}["0.439987", "0.00231646", "0.404172"]
DataFrame(permutedims(reduce(hcat, x))
x1 x2 x3
SubStrin… SubStrin… SubStrin…
1 4.71801 17.2815 0.187765
2 17.3681 17.1425 6.13644
3 0.439987 0.00231646 0.404172
如何将我的DataFrame转换为float?
答案 0 :(得分:0)
DataFrame
使用输入集合的元素类型。在创建DataFrame
之前,应将字符串转换为浮点数类型。您可以使用parse
将字符串解析为您选择的浮点数类型。
# we map each `SubString` array in x (`SubString` arrays)
# and parse each entries as `Float64` by broadcasting `parse`
parsed_x = map(i -> parse.(Float64, i), x)
DataFrame(permutedims(reduce(hcat, parsed_x)))
您也可以在创建带有字符串的DataFrame
之后选择进行转换。
df = DataFrame(permutedims(reduce(hcat, x))
for i in 1:size(df, 2)
df[i] = parse.(Float64, df[i])
end
df
两种方法都给出
│ Row │ x1 │ x2 │ x3 │
│ │ Float64 │ Float64 │ Float64 │
├─────┼─────────┼─────────┼──────────┤
│ 1 │ 4.71801 │ 17.2815 │ 0.187765 │
...