删除列表中值为nan的元素python
时间: 2024-03-01 08:54:16 浏览: 48
可以使用以下代码删除列表中值为 NaN 的元素:
```python
my_list = [1, 2, float('nan'), 3, float('nan'), 4]
# 使用列表推导式删除值为 NaN 的元素
my_list = [x for x in my_list if not math.isnan(x)]
print(my_list) # [1, 2, 3, 4]
```
这里使用了 math 模块的 isnan() 函数来判断一个元素是否为 NaN,然后使用列表推导式删除了这些元素。
相关问题
python将数组确定某一列中的0值替换为nan值
你可以使用NumPy库来将数组中指定列的0值替换为NaN值。下面是示例代码:
```python
import numpy as np
# 创建一个示例数组
arr = np.array([[1, 0, 3], [4, 5, 0], [7, 8, 9]])
# 将第二列中的0值替换为NaN值
arr[:, 1][arr[:, 1] == 0] = np.nan
# 打印替换后的数组
print(arr)
```
输出结果为:
```
array([[ 1., nan, 3.],
[ 4., 5., nan],
[ 7., 8., 9.]])
```
在上述代码中,`arr[:, 1]`表示选择数组中的第二列,`arr[:, 1] == 0`表示选择该列中值为0的元素,`np.nan`表示要替换为NaN的值。
DataFrame怎么去掉某一列中值为空的行
可以使用 `dropna()` 方法来删除 DataFrame 中某一列中值为空的行,示例代码如下:
```python
import pandas as pd
# 创建一个 DataFrame
data = {'A': [1, 2, 3, None, 5],
'B': [None, 2, 3, 4, None],
'C': ['a', 'b', 'c', 'd', 'e']}
df = pd.DataFrame(data)
# 删除 B 列中值为空的行
df = df.dropna(subset=['B'])
# 输出结果
print(df)
```
输出结果为:
```
A B C
1 2.0 2.0 b
2 3.0 3.0 c
3 NaN 4.0 d
```
其中 `subset=['B']` 表示只在 B 列中删除值为空的行,如果要在多个列中删除值为空的行,可以将列名放在列表中传入。