目标是在列表中删除“ NaN”和单引号项目。我正在使用numpy,但无法正常工作。
输入:
abc=[['mai', 'dubai', '200ml', 'NaN', 'NaN', 'NaN', 'NaN', 'NaN', 'NaN'],
['nestle', '', 'nido', 'milk', 'powder', '', '2.5kg', '(n1)', 'NaN'],
['al', 'alali', 'mushroom', 'pieces', '&', 'stems', '400gm', 'NaN', 'NaN'],
['mai', 'dubai', 'cup', 'NaN', 'NaN', 'NaN', 'NaN', 'NaN', 'NaN']]
x = abc[~np.isnan(abc)]
TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
预期输出:
abc=[['mai', 'dubai', '200ml'],
['nestle', 'nido', 'milk', 'powder', '2.5kg', '(n1)'],
['al', 'alali', 'mushroom', 'pieces', 'stems', '400gm'],
['mai', 'dubai', 'cup']]
谢谢
答案 0 :(得分:3)
不使用numpy,您可以使用列表推导和filter
exclude = ('', 'NaN')
[list(filter(lambda x: x not in exclude, l)) for l in abc]
答案 1 :(得分:2)
我认为您可以进行简单的列表理解。
result = [[i for i in x if i != 'NaN' and i != ''] for x in abc]
[['mai', 'dubai', '200ml'],
['nestle', 'nido', 'milk', 'powder', '2.5kg', '(n1)'],
['mai', 'dubai', 'cup']]