python如何去除Nan
时间: 2023-05-31 17:05:45 浏览: 85
可以使用NumPy库中的isnan()函数判断是否为NaN,然后使用NumPy库中的delete()函数删除含有NaN的行或列。
示例代码:
```python
import numpy as np
# 创建一个含有NaN的二维数组
a = np.array([[1, 2, np.nan], [4, np.nan, 6], [7, 8, 9]])
# 判断是否为NaN
mask = np.isnan(a)
# 删除含有NaN的行
a = np.delete(a, np.where(np.any(mask, axis=1)), axis=0)
# 删除含有NaN的列
a = np.delete(a, np.where(np.any(mask, axis=0)), axis=1)
print(a)
```
输出:
```
[[8.]]
```
在这个例子中,我们创建了一个含有NaN的二维数组a,并使用isnan()函数创建了一个布尔值的掩码mask。然后,我们使用np.any()函数找到含有NaN的行或列,并使用delete()函数删除这些行或列。最终结果为一个只含有数字8的一维数组。
相关问题
python 去除nan
你可以使用 numpy 库中的 isnan 函数来判断一个数是否为 NaN,然后使用 numpy 中的 replace 函数将其替换为其他值或者去除。例如:
```python
import numpy as np
a = np.array([1, 2, np.nan, 4, np.nan])
a = np.where(np.isnan(a), 0, a) # 将 NaN 替换为 0
print(a) # [1. 2. 0. 4. 0.]
```
如果你想删除数组中的 NaN,可以使用 numpy 中的 isnan 函数和 logical_not 函数来实现。例如:
```python
import numpy as np
a = np.array([1, 2, np.nan, 4, np.nan])
a = a[~np.isnan(a)] # 删除 NaN
print(a) # [1. 2. 4.]
```
python去除nan包含的行命令
可以使用pandas库中的dropna()函数来去除包含NaN值的行。具体命令如下:
df.dropna(axis=, how='any')
其中,axis=表示按行删除,how='any'表示只要该行中有任何一个NaN值,就删除该行。
阅读全文