如何将浮点字符串转换为整数字符串?

时间:2019-12-15 18:52:52

标签: python numpy

我有一个浮点数(显示为字符串)和NaN值的列表。

import numpy as np
mylist = ['1.0', '0.0', np.nan, 'a']

我需要将浮点字符串值转换为整数字符串值,同时忽略其余记录:

mylist = ['1', '0', np.nan, 'a']

我该怎么办?

我编写了以下代码,但我不知道如何处理异常np.nana等。

mylist2 = []
for i in mylist:
   mylist2.append(str(int(float(n))))

3 个答案:

答案 0 :(得分:1)

您可以使用调用函数的映射将它们转换为int:

def to_int(x):
    try:
        x = str(int(float(x)))
    except:
        pass
    return x

np.array(list(map(to_int, mylist)), dtype=object)                                                                                                                                  
# array(['1', '0', nan, 'a'], dtype=object)```

答案 1 :(得分:0)

尽管有不同的方法可以实现这一目标。但我们走吧。
这可能会有帮助。

 mylist2 = []
    for i in mylist:
        try:
            mylist2.append(str(int(float(n))))
        except:
            pass 

答案 2 :(得分:0)

假设您只想使用原始值而不是可以转换为整数的数字字符串,则可以编写一个辅助函数尝试进行转换,如果引发异常,则返回原始值。

def try_int(s):
    try:
        return str(int(float(s)))
    except:
        return s

mylist2 = [try_int(s) for s in mylist]

请注意,从浮点字符串到int的转换有时会使字符串更长。例如,字符串'9e200'将转换为201位数字的整数字符串。