我无法从包含字符串和非字符串条目的列中删除科学记数法。
当我使用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遇到了同样的问题(见解决方案中的评论)并且没有达成任何解决方案。
答案 0 :(得分:1)
如果您需要转换所有可转换值并保留其他值,则可以使用以下代码:
def try_float(x):
try:
return float(x)
except ValueError as e:
return x
series.apply(try_float)