list中有str变量和nan,怎么消除nan
时间: 2023-09-07 12:14:29 浏览: 73
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
可以使用 Python 中的列表解析和类型判断来删除列表中的 NaN 值。以下是示例代码:
```
import math
my_list = [1, 2, float('nan'), 'hello', 4, 5, float('nan'), 'world']
new_list = [x for x in my_list if not (isinstance(x, float) and math.isnan(x))]
print(new_list)
```
输出结果为:
```
[1, 2, 'hello', 4, 5, 'world']
```
在上面的示例中,我们使用了列表解析来创建一个新列表,其中只包含不是 NaN 的元素。为了避免删除字符串类型的元素,我们使用了 isinstance 函数来判断一个元素是否为 float 类型并且是否为 NaN。
需要注意的是,如果列表中同时包含字符串和 NaN 值,那么删除 NaN 值后,新列表将只包含字符串和数字类型的元素。如果需要保留 NaN 值,请在使用列表解析时添加相应的条件。
阅读全文