如何删除列表中nan值
时间: 2024-05-09 09:17:42 浏览: 10
可以使用 Pandas 库中的 dropna() 函数删除列表中的 NaN 值。示例代码如下:
```python
import pandas as pd
my_list = [1, 2, 3, float("nan"), 5, float("nan"), 7]
my_list = pd.Series(my_list)
my_list = my_list.dropna()
print(my_list)
```
输出结果为 `[1.0, 2.0, 3.0, 5.0, 7.0]`。
相关问题
python删除嵌套列表中nan值
可以使用列表推导式过滤掉 nan 值,如下所示:
```python
new_list = [[x for x in sublist if not math.isnan(x)] for sublist in old_list]
```
其中,`old_list` 是原始的嵌套列表,`new_list` 是过滤后的新列表。这里使用了内置的 `math.isnan` 函数,它用于判断一个值是否为 NaN。如果您没有导入 math 模块,需要先执行 `import math` 命令。
删除列表中无效值的代码
要删除列表中的无效值,你可以使用NumPy库的`np.isnan()`函数来识别无效值,然后使用布尔索引来过滤掉这些无效值。
下面是一个示例代码,演示如何删除列表中的无效值:
```python
import numpy as np
data = [1.031, 2.968, np.nan, 3.781, 4.594, 4.625, 4.5, 2.984, np.nan, 2.828, 3.515, 3.843, 3.578, 2.672, 0.656, 11.813, 9.843, 5.234, 2.313]
# 使用布尔索引过滤无效值
data = np.array(data)
valid_data = data[~np.isnan(data)]
print(valid_data)
```
在这个例子中,原始数据包含了一些无效值(NaN)。使用`np.isnan(data)`可以识别出这些无效值。然后,使用`~np.isnan(data)`可以得到一个布尔数组,其中True表示对应位置上的值是有效的,False表示对应位置上的值是无效的。通过将这个布尔数组作为索引应用到原始数据上,可以得到一个只包含有效值的新数组`valid_data`。
运行这段代码,你会得到一个只包含有效值的列表。在这个例子中,输出将是:
```
[ 1.031 2.968 3.781 4.594 4.625 4.5 2.984 2.828 3.515 3.843
3.578 2.672 0.656 11.813 9.843 5.234 2.313]
```
这样,你就成功地删除了列表中的无效值。