You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从字符串数组中移除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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:39:50