AttributeError: 'Categorical' object has no attribute 'view'
时间: 2023-12-02 10:03:54 浏览: 161
AttributeError: 'Categorical' object has no attribute 'view'通常是由于尝试在分类变量上调用.view()方法而引起的。.view()方法是numpy数组的方法,而不是pandas分类变量的方法。因此,当你尝试在分类变量上调用.view()方法时,会出现此错误。要解决此问题,你可以使用以下方法之一:
1. 将分类变量转换为numpy数组,然后再调用.view()方法。
2. 使用pandas的.to_numpy()方法将分类变量转换为numpy数组,然后再调用.view()方法。
以下是两种解决方法的示例代码:
```python
# 方法1:将分类变量转换为numpy数组,然后再调用.view()方法
import pandas as pd
# 创建一个分类变量
cat_var = pd.Categorical(['a', 'b', 'c'])
# 将分类变量转换为numpy数组,然后再调用.view()方法
cat_var_array = cat_var.codes.view('i1')
print(cat_var_array)
# 输出:array([0, 1, 2], dtype=int8)
# 方法2:使用pandas的.to_numpy()方法将分类变量转换为numpy数组,然后再调用.view()方法
import pandas as pd
# 创建一个分类变量
cat_var = pd.Categorical(['a', 'b', 'c'])
# 使用pandas的.to_numpy()方法将分类变量转换为numpy数组,然后再调用.view()方法
cat_var_array = cat_var.codes.to_numpy().view('i1')
print(cat_var_array)
# 输出:array([0, 1, 2], dtype=int8)
```
阅读全文