熊猫-将dataframe对象转换为数字

时间:2019-12-03 09:26:59

标签: pandas dataframe type-conversion sparse-matrix dtype

我有一个看起来像这样的数据框。

x_train.info()

Int64Index: 8330 entries, 16 to 8345
Data columns (total 4 columns):
userId                    8330 non-null object
base_id                   8330 non-null object
rating                    8330 non-null object
dtypes: object(3)

我正在尝试使用以下命令将其转换为稀疏矩阵

train_sparse_matrix = sparse.csc_matrix((x_train['rating'].values, (x_train['userId'].values, x_train['base_id'].values)),)

但是出现以下错误

<ipython-input-112-520f5e1aee89> in <module>
      4 
      5 train_sparse_matrix = sparse.csc_matrix((x_train['result.courseViewCount'].values, (x_train['userId'].values, 

----> 6                                                             **x_train['result.base_id'].values)),)**

TypeError: 'numpy.float64' object cannot be interpreted as an integer

因此,我尝试使用.astype('int32)to_numeric()函数转换此数据帧,但是x_train.info()仍继续显示为对象。

请您帮忙!

数据将如下所示:

userId  base_id rating  
5392.0  ABC001  6.0 
5392.0  ETZ222  2.0 
5392.0  XYZ095  1.0 

Is it because the base_id contains alphabets?

1 个答案:

答案 0 :(得分:0)

您可以尝试将其转换为numpy.int64吗?

.astype(numpy.int64)

如果您提供真实数据的摘录,将有助于回答