You need to check if each element exceeds 0.02, and not more.
best = [x for x in vals if x > '0.02']
Your original expression is [x for x in vals > '0.02']parsed as [x for x in (vals > '0.02')]. Since it vals > '0.02'is a Boolean value, not a sequence, it is impossible to iterate over it.
EDIT: , '0.02' Joe (). , , , :
best = [x for x in vals if float(x) > 0.02]
x float, , , . - , [x for ...], [float(x) for ...]. .