从包含字符串和浮点数的pandas列中删除科学记数法

时间:2018-06-13 09:47:23

标签: python pandas numpy

我无法从包含字符串和非字符串条目的列中删除科学记数法。

当我使用read_csv导入数据集时,其中一列显示以下内容:

0           1.9157E+11
11          1.9157E+11
12          1.9157E+11
13          1.9157E+11
14          1.9157E+11
         ...      
37444    19156794-1005
37445    19156794-1004
37446      19156791023
37447    19156794-1003
37448    19156794-1003

虽然所有条目都编码为字符串,但某些行仅包含数字(因此它们转换为科学记数法),而某些行包含“ - ”(因此它们显示正确)。

当我打印dataframe['column'][11]时,我得到'1.9157E+11',这是一个字符串。

我无法将apply(float)用于整个列,因为某些条目包含“ - ”,因此无法转换为字符串。

还有this question被问到,但是OP遇到了同样的问题(见解决方案中的评论)并且没有达成任何解决方案。

1 个答案:

答案 0 :(得分:1)

如果您需要转换所有可转换值并保留其他值,则可以使用以下代码:

def try_float(x):
    try:
        return float(x)
    except ValueError as e:
        return x

series.apply(try_float)