【发布时间】:2020-03-27 22:46:15
【问题描述】:
我有一个看起来像这样的数据框。
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?
【问题讨论】:
-
试试
train_sparse_matrix = sparse.csc_matrix((np.array(x_train['rating'].values), np.array(x_train['userId'].values, x_train['base_id'].values)),),可能会有帮助! -
它不起作用,给我同样的错误(numpy.float64' 对象不能被解释为整数)
标签: pandas dataframe type-conversion sparse-matrix dtype