2017-02-06 9 views
2

У меня есть следующая колонка в DF. Как преобразовать этот столбец в float (13,5) с 5 decimals.String length всегда 18 символов. В качестве обходного пути я использовал функцию разделения строк и присоединил возвращаемые значения.Pandas - преобразовать тип строки в Float

df=pd.DataFrame(['+00000030454360000','-00000030734250000','-00000004643685000'],columns=['qty']) 
print df.qty.str[:13]+'.'+df.qty.str[13:] 

Ожидаемый результат

    0 
0 +304543.6 
1 -307342.5 
2 -46436.85 
+0

в вопросе вы заявили, что вам нужно 'поплавок (13,5)', но желательные набора данных у вас есть строки. Итак, вам нужны модифицированные строки или поплавки? – MaxU

+1

@ MaxU Просто осознал ошибку :) Мне нужно плавающее значение – Shijo

ответ

1

Попробуйте это:

In [23]: pd.to_numeric(df.qty, errors='coerce')/10**5 
Out[23]: 
0 304543.60 
1 -307342.50 
2 -46436.85 
Name: qty, dtype: float64 
+0

Спасибо @MaxU .. Я ожидал ответа от вас – Shijo

+0

@Shijo, рад, что я мог бы помочь :-) – MaxU

Смежные вопросы