Pandas:ValueError(将Sparse [float64,0.0] dtypes转换为float64数据类型的任何方法)

问题描述 投票:1回答:1

我有一个数据帧X_train,我要将两个其他数据帧连接到该数据帧。第二个和第三个数据帧是从稀疏矩阵获得的,该稀疏矩阵是由TF-IDF VEctorizer生成的]

q1_train_df = pd.DataFrame.sparse.from_spmatrix(q1_tdidf_train,index=X_train.index,columns=q1_features)
q2_train_df = pd.DataFrame.sparse.from_spmatrix(q2_tdidf_train,index=X_train.index,columns=q2_features)
X_train_final  = pd.concat([X_train,q1_train_df,q2_train_df],axis=1)

X_train_final dtypes外观如下


X_train_final.dtypes

cwc_min                       float64
cwc_max                       float64
csc_min                       float64
csc_max                       float64
ctc_min                       float64
                         ...         
q2_zealand       Sparse[float64, 0.0]
q2_zero          Sparse[float64, 0.0]
q2_zinc          Sparse[float64, 0.0]
q2_zone          Sparse[float64, 0.0]
q2_zuckerberg    Sparse[float64, 0.0]
Length: 10015, dtype: object

我正在使用XGBoost在此最终数据帧上进行训练,这在尝试拟合数据时引发错误

model.fit( X_train_final,y_train)


ValueError: DataFrame.dtypes for data must be int, float or bool.
                Did not expect the data types in fields q1_04, q1_10, q1_100, q

我认为该错误是由于其中存在Sparse [float64,0.0] dtypes引起的。您能帮我一个忙,不能弄清楚如何摆脱这个错误吗?

我有一个数据帧X_train,我要将两个其他数据帧连接到该数据帧。第二个和第三个数据帧是从稀疏矩阵获得的,该稀疏矩阵是由TF-IDF生成的...

python pandas dataframe sparse-matrix
1个回答
0
投票

我实际上只是遇到了同样的问题。我有一个使用TF-IDF vectorizo​​r生成的列的列表,并且我试图在数据集上使用XGBoost。

© www.soinside.com 2019 - 2024. All rights reserved.