Python 从另一个列表中删除与一个列表中的nan对应的项
对于sklearn中的回归,我有一个列表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,
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'
还是PythonNone
?@n9codenan
可能不是数字,而不是数字,类型不是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]