You have two problems. Firstly, your grok filter is specified before the csv filter and because the filters are applied so that there is no "Basic" field for conversion when the grok filter is applied.
-, , grok . ,
grok{
match => [
"Basic", " %{NUMBER:Basic:float}"
]
}
no-op. overwrite => ["Basic"], , , mutate :
mutate {
convert => ["Basic", "float"]
}