在列表列表中替换 nan
replace nan in list of list
我正在尝试从列表中替换 nan。我已经尝试过这些解决方案。
但是,我收到以下错误:TypeError: ufunc 'isnan' 不支持输入类型,并且无法根据转换将输入安全地强制转换为任何受支持的类型
list_of_lists=[[1,2,3],['nan','nan','nan'],[3,4,5]]
我想用类似“replaced”的字符串替换 nan 并期望:
list_of_lists=[[1,2,3],['replaced','replaced','replaced'],[3,4,5]]
感谢帮助
您将 nan
表示为字符串,这不是正确的表示形式,
您可以使用 float('nan')
或 math.nan
无论如何,考虑到这件事,你可以这样做:
>> from math import nan, isnan
>> list_of_lists=[[1,2,3],[nan, nan, nan],[3,4,5]]
>> [['replaced' if isnan(i) else i for i in j ] for j in list_of_lists]
输出:
[[1, 2, 3], ['replaced', 'replaced', 'replaced'], [3, 4, 5]]
这是一种非常简单的方法。
new_list = [y.replace('nan','replace') if y == 'nan' else y for x in list_of_lists for y in x ]
输出
[1, 2, 3, 'replace', 'replace', 'replace', 3, 4, 5]
我正在尝试从列表中替换 nan。我已经尝试过这些解决方案。
但是,我收到以下错误:TypeError: ufunc 'isnan' 不支持输入类型,并且无法根据转换将输入安全地强制转换为任何受支持的类型
list_of_lists=[[1,2,3],['nan','nan','nan'],[3,4,5]]
我想用类似“replaced”的字符串替换 nan 并期望:
list_of_lists=[[1,2,3],['replaced','replaced','replaced'],[3,4,5]]
感谢帮助
您将 nan
表示为字符串,这不是正确的表示形式,
您可以使用 float('nan')
或 math.nan
无论如何,考虑到这件事,你可以这样做:
>> from math import nan, isnan
>> list_of_lists=[[1,2,3],[nan, nan, nan],[3,4,5]]
>> [['replaced' if isnan(i) else i for i in j ] for j in list_of_lists]
输出:
[[1, 2, 3], ['replaced', 'replaced', 'replaced'], [3, 4, 5]]
这是一种非常简单的方法。
new_list = [y.replace('nan','replace') if y == 'nan' else y for x in list_of_lists for y in x ]
输出
[1, 2, 3, 'replace', 'replace', 'replace', 3, 4, 5]