AttributeError: 'numpy.ndarray' object has no attribute 'deropna'
时间: 2023-06-22 12:43:56 浏览: 336
这个错误是因为 numpy.ndarray 对象没有 dropna() 方法。dropna() 方法是 pandas.DataFrame 或 pandas.Series 对象的方法。
如果你想在 numpy 中删除数组中的空值,可以使用 numpy.delete() 方法。例如,如果你有一个一维数组 x,其中包含空值,可以使用以下代码删除空值:
```python
import numpy as np
# 创建包含空值的一维数组
x = np.array([1, 2, np.nan, 3, np.nan, 4])
# 删除空值
new_x = x[~np.isnan(x)]
print(new_x)
```
输出结果为:
```
[1. 2. 3. 4.]
```
其中,np.isnan(x) 返回一个布尔数组,指示 x 中的每个元素是否为 NaN。使用 ~ 运算符取反得到一个布尔数组,指示哪些元素不是 NaN。然后使用这个布尔数组作为索引,从 x 中选择不是 NaN 的元素。
如果你有一个二维数组 arr,你可以使用 np.isnan() 和 np.any() 方法来删除包含空值的整行数据。例如:
```python
import numpy as np
# 创建包含空值的二维数组
arr = np.array([[1, 2, np.nan], [4, np.nan, 6], [7, 8, 9]])
# 删除包含空值的整行数据
new_arr = arr[~np.any(np.isnan(arr), axis=1)]
print(new_arr)
```
输出结果为:
```
[[7. 8. 9.]]
```
其中,np.any(np.isnan(arr), axis=1) 返回一个布尔数组,指示每行中是否至少有一个元素是 NaN。使用 ~ 运算符取反得到一个布尔数组,指示哪些行中没有 NaN 元素。然后使用这个布尔数组作为索引,从 arr 中选择没有 NaN 的整行数据。
阅读全文