Поскольку ваш string
находится в недопустимом формате для преобразования в float
, вам сначала нужно исправить его, удалив -
справа, используя rstrip
, и добавить его на передний план.
Например:
df = pd.DataFrame({'a':['1.5-','1.7','2.0','4.1-']})
df.a.apply(lambda x: '-'+(x.rstrip('-')) if x[-1] =='-' else x).astype(float)
0 -1.5
1 1.7
2 2.0
3 -4.1
Name: a, dtype: float64