我有一个列表,其中值存储为字符串。其中一些值以科学计数法存储,而另一些则为浮点数。我试图使用.astype(float)投射它们,但是没有用。关于如何处理这个想法?
我的目标是使列为浮点型。
df['Colum1] = ['5,4e-05','3,35e-05','0,0001125','0,0001335']
答案 0 :(得分:1)
首先,您必须用逗号替换圆点,然后只需将cas替换为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