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

Python 如何将浮点字符串转换为整数字符串?,python,numpy,Python,Numpy,我有一个浮点数(显示为字符串)和NaN值的列表 import numpy as np mylist = ['1.0', '0.0', np.nan, 'a'] 我需要将浮点字符串值转换为整数字符串值,同时忽略其余记录: mylist = ['1', '0', np.nan, 'a'] 我怎么做 我编写了以下代码,但我不知道如何处理异常np.nan,a,等等 mylist2 = [] for i in mylist: mylist2.append(str(int(float(n))))

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

import numpy as np
mylist = ['1.0', '0.0', np.nan, 'a']
我需要将浮点字符串值转换为整数字符串值,同时忽略其余记录:

mylist = ['1', '0', np.nan, 'a']
我怎么做

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

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

尽管有不同的方法来实现这一点。但我们走你的路。
这可能会有帮助

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

假设您只想在原始值不是可以转换为整数的数字字符串时使用它们,您可以编写一个帮助函数来尝试进行转换,并在引发异常时返回原始值

def try_int(s):
尝试:
返回str(int(float(s)))
除:
返回s
mylist2=[在mylist中为s尝试整数]

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

您可以使用调用函数的映射将其转换为整数:

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)```

那么,对于NaN、无穷大或非整数字符串,您希望发生什么?这是为了什么?看起来有点奇怪,不是吗?@kaya3他说他想忽略记录的其余部分。但“忽略”是什么意思?让它们保持原样,删除它们,或者做其他事情?你是如何获得数据的?你能在创建数组之前修复它吗?