Pandas / 如何将存储为字符串的科学记数法转换为浮点数?
Posted
技术标签:
【中文标题】Pandas / 如何将存储为字符串的科学记数法转换为浮点数?【英文标题】:Pandas / How to convert scientific notation stored as strings into float? 【发布时间】:2020-03-20 16:37:36 【问题描述】:我有一个列表,其中的值存储为字符串。一些值以科学记数法存储,而另一些则是浮点数。我尝试使用 .astype(float) 投射它们,但它没有用。关于如何处理这个问题的任何想法?
我的目标是将列设为浮动。
df['Colum1] = ['5,4e-05','3,35e-05','0,0001125','0,0001335']
【问题讨论】:
尝试用句点.
替换逗号 ,
熊猫开发者来自美国,这就是十进制表示法的工作原理
【参考方案1】:
首先您必须将逗号替换为点,然后您可以将其转换为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
【讨论】:
非常感谢! 嗨@francisco,不要忘记您可以投票并接受答案。见What should I do when someone answers my question?,谢谢!以上是关于Pandas / 如何将存储为字符串的科学记数法转换为浮点数?的主要内容,如果未能解决你的问题,请参考以下文章