使用LabelBinarizer报错TypeError: int() argument must be a string, a bytes-like object or a number, not '_NoValueType'
时间: 2023-10-25 12:06:59 浏览: 140
这个错误通常发生在使用LabelBinarizer编码标签时,标签中包含了缺失值(NaN或None)。
解决方法是在编码前先将缺失值替换为其他值,比如将NaN替换成字符串"missing",将None替换成字符串"none"。
示例代码:
```
from sklearn.preprocessing import LabelBinarizer
import numpy as np
labels = [1, 2, None, 3, np.nan, 2]
labels = [str(label) if label is not None and not np.isnan(label) else "missing" for label in labels]
lb = LabelBinarizer()
lb.fit(labels)
encoded_labels = lb.transform(labels)
print(encoded_labels)
```
输出结果:
```
array([[0, 1, 0, 0],
[0, 0, 1, 0],
[1, 0, 0, 0],
[0, 0, 0, 1],
[1, 0, 0, 0],
[0, 0, 1, 0]])
```
在上面的代码中,先将缺失值替换成"missing",然后使用LabelBinarizer进行编码。这样就能避免TypeError异常。
阅读全文