Ray*_*nce 5 python-3.x pandas scikit-learn one-hot-encoding
我是使用 sklearn 进行编码的新手,我需要对 dtaset 的 3 列进行编码,我尝试仅对一列进行编码,但它向我发送了一个错误
*ValueError Traceback (最近一次调用) /usr/local/lib/python3.6/dist-packages/sklearn/compose/_column_transformer.py in _hstack(self, Xs) 614 force_all_finite=False) --> 615 for X in Xs] 616 except ValueError:5帧 ValueError:无法将字符串转换为浮点数:'Vikings' 在处理上述异常期间,发生了另一个异常:ValueError Traceback(最近一次调用最后)/usr/local/lib/python3.6/ dist-packages/sklearn/compose/_column_transformer.py in _hstack(self, Xs) 615 for X in Xs] 616 except ValueError: --> 617 raise ValueError("对于稀疏输出,所有列都应该" 618 " 是数字或转换为数字。”)619
ValueError:对于稀疏输出,所有列都应该是数字或可转换为数字。*
当我尝试对 3 列进行编码时,它以元组的形式向我发送结果,但我需要对其进行编码,而不是以元组的形式。
(0, 25) 1.0 (0, 62) 1.0 (0, 86) 1.0 (1, 3) 1.0 (1, 44) 1.0 (1, 99) 1.0...
我的代码如下
from sklearn.preprocessing import LabelEncoder, OneHotEncoder, StandardScaler
from sklearn.compose import ColumnTransformer
ds = pd.read_csv('nfl_per.csv')
X = ds.iloc[0:2789,4:-1].values
y = ds.iloc[0:2789,-1].values
ct = ColumnTransformer(transformers=[('encoder', OneHotEncoder(), [0])], remainder='passthrough')
X = np.array(ct.fit_transform(X))
print(X)
Run Code Online (Sandbox Code Playgroud)
为了对 3 列进行编码,我使用:
from sklearn.preprocessing import LabelEncoder, OneHotEncoder, StandardScaler
from sklearn.compose import ColumnTransformer
ds = pd.read_csv('nfl_per.csv')
X = ds.iloc[0:2789,4:-1].values
y = ds.iloc[0:2789,-1].values
ct = ColumnTransformer(transformers=[('encoder', OneHotEncoder(), [0,1,2])], remainder='passthrough')
X = np.array(ct.fit_transform(X))
print(X)
Run Code Online (Sandbox Code Playgroud)
但同样,我不希望它处于元组中,而是进行编码。
我正在使用的数据集如下: https://drive.google.com/file/d/1wn5coKQ5BRWS1Bll5po2H45unWtPLqTX/view ?usp=sharing
我将不胜感激任何指导和建议。
尝试:
OneHotEncoder(稀疏=假)
上面的内容自 1.2 版本以来已被弃用,并在 1.4 版本中被删除sparse_output。
OneHotEncoder(sparse_output=False)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7573 次 |
| 最近记录: |