【发布时间】:2019-09-04 14:30:47
【问题描述】:
我正在尝试从列表列表中删除所有 nans(带有字符串条目),我的数据如下:
[['beer', 'nuts', nan],
['beer', 'butter', 'apple'],
['beer', 'nuts', 'cheese'],
['beer', 'bananas', nan],
['beer', 'nuts', 'apple']]
我想得到这个结果:
[['beer', 'nuts'],
['beer', 'butter', 'apple'],
['beer', 'nuts', 'cheese'],
['beer', 'bananas'],
['beer', 'nuts', 'apple']]
我已经尝试从(How to remove nan's from list of lists? [duplicate] 和How to delete [NaN] from a list of lists?)那里得到答案:
import math
nan = float('nan')
store_data_list = [[x for x in y if not math.isnan(x)] for y in store_data_list] #remove nans from list of lists
#AND
store_data_list = [xs for xs in store_data_list if not any(math.isnan(x) for x in xs)]
#AND
store_data_list = [[x for x in y if not np.isnan(x)] for y in store_data_list]
在我的例子中,两者似乎都不起作用。我得到错误:
TypeError: 必须是实数,不是 str
TypeError: 输入类型不支持 ufunc 'isnan',根据转换规则 ''safe'' 无法安全地将输入强制转换为任何支持的类型
谁能指出我做错了什么
【问题讨论】:
-
发布有关产生异常的代码的问题时,请始终包含 complete 回溯 - 复制并粘贴它,然后将其格式化为代码(选择它并输入
ctrl-k)