如何从嵌套列表中移除nan值以更新网页数据
过滤嵌套列表中含NaN的子元素,保留有效数据用于网页更新
需求说明
处理两组嵌套列表:
list[0]保持原始内容不变list[1]过滤掉所有包含NaN的子元素,仅保留有效数据用于网页更新
原始数据
list[0] = [[1, 8.4], [1, 2.2], [1, 1.3], [2, 4.7], [2, 4.0], [8, 9.6]] list[1] = [[1, 8.4], [1, 2.2], [1, nan], [2, nan], [2, 4.0], [8, nan]]
解决方案(Python)
用列表推导式结合math.isnan()过滤无效项,代码如下:
import math # 定义原始列表 original_list_0 = [[1, 8.4], [1, 2.2], [1, 1.3], [2, 4.7], [2, 4.0], [8, 9.6]] original_list_1 = [[1, 8.4], [1, 2.2], [1, float('nan')], [2, float('nan')], [2, 4.0], [8, float('nan')]] # 过滤list[1],移除包含NaN的子元素 filtered_list_1 = [item for item in original_list_1 if not any(math.isnan(val) for val in item)] # 输出处理后结果 print("list[0] =", original_list_0) print("list[1] =", filtered_list_1)
运行结果
list[0] = [[1, 8.4], [1, 2.2], [1, 1.3], [2, 4.7], [2, 4.0], [8, 9.6]] list[1] = [[1, 8.4], [1, 2.2], [2, 4.0]]
补充说明
如果项目中已使用NumPy,可简化检测逻辑:
import numpy as np original_list_1 = [[1, 8.4], [1, 2.2], [1, np.nan], [2, np.nan], [2, 4.0], [8, np.nan]] filtered_list_1 = [item for item in original_list_1 if not np.isnan(item).any()]
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

