簡體   English   中英

如何將浮點字符串轉換為整數字符串?

[英]How to convert float strings to integer strings?

我有一個浮點數列表(顯示為字符串)和 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))))

您可以使用調用函數的映射將它們轉換為整數:

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

盡管有不同的方法可以實現這一點。 但讓我們走你的路。
這可能會有所幫助。

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

假設您只想在原始值不是可以轉換為整數的數字字符串時使用它們,您可以編寫一個輔助函數來嘗試進行轉換,並在引發異常時返回原始值。

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

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

請注意,從 float 字符串到 int 的轉換有時會使字符串更長; 例如,字符串'9e200'將被轉換為一個 201 位的整數字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM