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

Python 从另一个列表中删除与一个列表中的nan对应的项,python,scikit-learn,Python,Scikit Learn,对于sklearn中的回归,我有一个列表x和一个列表y。不幸的是,这些列表中有空格/NaN。NaN会破坏任何分析,因此我需要删除另一个列表中的每个NaN及其对应的编号(以保持x[0]和y[0]之间的关系,等等) 找到这个的优雅方式是什么?有循环的替代方法吗?使用Python内置函数和 例如: 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,

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


找到这个的优雅方式是什么?有循环的替代方法吗?

使用Python内置函数和

例如:

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]

我猜长度是一样的,对吗?@n9code对。起初它们是一样的。如果我删除一个列表中的nan,我还必须删除另一个列表中具有相同索引的nan,因此长度将始终相同。是
'nan'
值字符串
'nan'
还是Python
None
?@n9code
nan
可能不是数字,而不是数字,类型不是string我想您可能需要过滤掉不是数字的元素(不清楚它们是包含数字的字符串还是纯整数)。Lambda表达式应该使用math.isnan检查值是否为NaN。
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]