[英]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.