如何从字符串数组中移除np.nan值?Python实现方案问询
移除列表中np.nan的最简Python实现
嘿,这个需求太常见了,最简洁高效的方式当属列表推导式配合空值判断函数,分两种场景给你梳理:
场景1:列表里只有数值+np.nan
如果你的列表元素都是数值类型(int/float),直接用np.isnan()过滤就行,一行代码搞定:
import numpy as np # 假设你的目标列表是my_list cleaned_list = [item for item in my_list if not np.isnan(item)]
np.isnan()会精准识别np.nan,列表推导式又快又直观,是Python开发者日常处理这类过滤需求的首选写法。
场景2:列表混有字符串+np.nan
如果列表里既有字符串,又混入了float类型的np.nan(毕竟np.nan本质是float),直接用np.isnan()会触发TypeError(因为字符串没法做数值空值判断)。这时候用pandas的pd.isna()更省心,它能统一处理各种空值类型:
import pandas as pd cleaned_list = [item for item in my_list if not pd.isna(item)]
要是你不想引入pandas,也可以手动判断类型+空值:
import numpy as np cleaned_list = [item for item in my_list if not (isinstance(item, float) and np.isnan(item))]
不过这种写法不如用pd.isna简洁,适合完全不想依赖pandas库的场景。
内容的提问来源于stack exchange,提问作者Techno04335
相关产品推荐
相关产品推荐

