簡體   English   中英

使用 np.nan 查找和替換列表中的字符串

[英]Finding and replacing a string in a list with np.nan

我是編碼新手,無法弄清楚如何替換 python 列表中的字符串。

# I have
a = [ 200, "NaN", 230 , 300]

# I want
a = [200, np.nan, 230, 300]

查找並替換列表a中的字符串。

使用 python 和 numpy:

是否可以通過使用 for 循環將"NaN"更改為np.nan

嘗試使用 function 進行計算時出現錯誤:

can't multiply sequence by non-int of type 'float'

我會做以下事情:

a = [200, "NaN", 230, 300]

a = [np.nan if x == "NaN" else x for x in a]

或者作為評論中提到的@tomjn。 如果您樂於使用 numpy 陣列而不是您可以使用的列表

a = np.array(a, dtype=float)

當您使用dtype=float創建數組時, numpy將處理"NaN"

>>> a = [200, "NaN", 230 , 300] 
>>> np.array(a, dtype=float)
array([200.,  nan, 230., 300.])

想必這就是你最終想要的。 如果您真的想要一個列表,請添加tolist()

暫無
暫無

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

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