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

如何在Python中移除变量内数值列表中的NaN值

移除列表中的NaN值,保留有效浮点数

没问题,要清理这个包含NaN的列表只留下有效浮点数,用Python可以通过几种简单方法实现,我给你列几个常用方案:

方法1:纯Python(无需额外库)

利用math.isnan()函数来判断NaN(注意不能直接用x == np.nan,因为NaN和任何值比较都是False),结合列表推导式快速过滤:

import math

original_list = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09034446, 0.16660596, 0.20366712, 0.21721049, 0.22288556, 0.2647726, 0.30133098, 0.35875865, 0.67048766, 0.83591387, 0.84130192, 1.00343632, 1.08201832, 1.32280598, 3.71048433, 4.92399325, 5.7334934, 5.78915343, 5.79743345, 11.87101934, float('nan'), float('nan'), float('nan'), float('nan'), float('nan')]

cleaned_list = [x for x in original_list if not math.isnan(x)]
print(cleaned_list)

这个方法轻量、无依赖,适合处理小型列表。

方法2:使用Pandas(适合数据分析场景)

如果你平时用Pandas处理数据,转成Series后调用dropna()会更简洁,尤其适合大型数据集:

import pandas as pd

original_list = [0.0, 0.0, ..., float('nan')]  # 你的原始列表
cleaned_list = pd.Series(original_list).dropna().tolist()

方法3:使用NumPy(数值计算场景)

如果你的列表原本就是NumPy数组,或者需要后续做数值运算,用NumPy的isnan()来过滤也很方便:

import numpy as np

original_array = np.array(original_list)
cleaned_array = original_array[~np.isnan(original_array)]
cleaned_list = cleaned_array.tolist()

其中~表示取反,会把所有非NaN的元素保留下来。


内容的提问来源于stack exchange,提问作者Manoj CHAMLAGAIN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 11:47:44