从另一个列表中删除与nan对应的项目

2024-04-18 12:16:29 发布

您现在位置:Python中文网/ 问答频道 /正文

对于sklearn中的回归,我有一个列表x和一个列表y。不幸的是,这些列表有空格/NaN。NaN会破坏任何分析,因此我需要删除每个NaN及其在另一个列表中对应的编号(以保持x[0]y[0]之间的关系,等等)

找到这个的优雅方法是什么?有没有其他方法可以替代循环?你知道吗


Tags: 方法列表关系sklearnnan编号空格
1条回答
网友
1楼 · 发布于 2024-04-18 12:16:29

使用Python内置函数^{}^{}尝试以下操作:

def filter_nans(x, y):
    filtered = filter(lambda o: not math.isnan(o[0]) and not math.isnan(o[1]), zip(x, y))    
    return [el[0] for el in filtered], [el[1] for el in filtered]

例如:

x = [1, 2, 3, 4, 5, 6, None, 8]
y = [10, 'not a number', 30, 40, 50, 60, 70, 80]

x, y = filter_nans(x, y)

>>> x
[1, 3, 4, 5, 6, 8]
>>> y
[10, 30, 40, 50, 60, 80]

相关问题 更多 >