Pandas / Как преобразовать научную нотацию c, хранящуюся в виде строк, в число с плавающей точкой? - PullRequest
0 голосов
/ 20 марта 2020

У меня есть список значений, хранящихся в виде строк. Некоторые значения хранятся в формате scientifi c, а другие - с плавающей точкой. Я пытался разыграть их, используя .astype (float), но это не сработало. Есть идеи, как с этим бороться?

Моя цель - получить столбец с плавающей точкой.

df['Colum1] = ['5,4e-05','3,35e-05','0,0001125','0,0001335']

1 Ответ

1 голос
/ 20 марта 2020

Сначала вам нужно заменить запятые на точки, затем вы можете просто набрать float:

df.Colum1.str.replace(',', '.').astype(float)

Также, чтобы избежать ошибок, pd.to_numeric, вероятно, лучший вариант:

pd.to_numeric(df.Col1.str.replace(',', '.'), errors='coerce')

Вот пример:

df = pd.DataFrame({'Col1':['5,4e-05','3,35e-05','0,0001125','0,0001335']})

pd.to_numeric(df.Col1.str.replace(',', '.'), errors='coerce')

0    0.000054
1    0.000034
2    0.000112
3    0.000133
Name: Col1, dtype: float64
...