Попробуйте, я предполагаю, что 0,58% читается как строка, что означает, что функция замены будет работать, чтобы заменить '%' ничем, после чего его можно преобразовать в число
import pandas as pd
df = pd.DataFrame({'col1':['1','2','3%']})
df.col1.str.replace('%','').astype(float)