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 / 如何将存储为字符串的科学记数法转换为浮点数?的主要内容,如果未能解决你的问题,请参考以下文章

java字符串转数字如何不显示科学计数法

科学记数法在 pandas 中被读取为字符串

pandas to_csv:将 pandas 写入 csv 时抑制 csv 文件中的科学记数法

excel 如何把数字自动转成字符串?

使用 pandas 将 .csv 文件转换为科学计数法

在pandas python中将指数或科学数转换为整数