Python Pandas:ValueError:创建sparse.csr_矩阵时,以10为基数的int()的文本无效
这是我正在使用的熊猫数据帧的信息: 输入:Python Pandas:ValueError:创建sparse.csr_矩阵时,以10为基数的int()的文本无效,python,pandas,dataframe,sparse-matrix,Python,Pandas,Dataframe,Sparse Matrix,这是我正在使用的熊猫数据帧的信息: 输入: final.info() print(final) 输出: <class 'pandas.core.frame.DataFrame'> RangeIndex: 410978 entries, 0 to 410977 Data columns (total 3 columns): Column Non-Null Count Dtype --- ------ -------------- ----
final.info()
print(final)
输出:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 410978 entries, 0 to 410977
Data columns (total 3 columns):
Column Non-Null Count Dtype
--- ------ -------------- -----
0 customer_id 410978 non-null int64
1 item_id 410978 non-null object
2 item_qty 410978 non-null int64
dtypes: int64(2), object(1)
memory usage: 9.4+ MB
customer_id item_id item_qty
0 12346 15056BL 1
1 12346 15056N 1
2 12346 15056P 1
3 12346 20679 1
4 12346 20682 1
... ... ... ...
410973 18287 85040B 12
410974 18287 85041 12
410975 18287 85199S 24
410976 18287 85232B 24
410977 18287 C2 1
[410978 rows x 3 columns]
错误:
ValueError Traceback (most recent call last)
<ipython-input-47-058d94e47e42> in <module>()
17
18 #Create the sparse matrix
---> 19 sparse_purchase = sparse.csr_matrix((quantity,(rows,cols)), shape=(len(customers), len(products)))
5 frames
/usr/local/lib/python3.7/dist-packages/numpy/core/_asarray.py in asarray(a, dtype, order)
81
82 """
---> 83 return array(a, dtype, copy=False, order=order)
84
85
ValueError: invalid literal for int() with base 10: '15056BL'
ValueError回溯(最近一次调用)
在()
17
18#创建稀疏矩阵
--->19 sparse_purchase=sparse.csr_矩阵((数量,(行,列)),形状=(len(客户),len(产品)))
5帧
/asarray中的usr/local/lib/python3.7/dist-packages/numpy/core//\u asarray.py(a,数据类型,顺序)
81
82 """
--->83返回数组(a,数据类型,副本=False,顺序=order)
84
85
ValueError:基数为10的int()的文本无效:“15056BL”
我认为sparse.csr_矩阵需要行和列的整数输入,但由于item_id是一个对象数据类型,我无法创建稀疏矩阵。也不可能将item_id转换为int。是否有方法使用对象数据类型创建稀疏矩阵
任何帮助都将不胜感激。请包括完整的堆栈跟踪,这样我们就可以看到哪行代码抛出了错误。你说得对,
cols
从item\u id
派生的必须是整数dtype。@hpaulj有没有办法用对象数据类型创建稀疏矩阵?@joao编辑了这篇文章。
ValueError Traceback (most recent call last)
<ipython-input-47-058d94e47e42> in <module>()
17
18 #Create the sparse matrix
---> 19 sparse_purchase = sparse.csr_matrix((quantity,(rows,cols)), shape=(len(customers), len(products)))
5 frames
/usr/local/lib/python3.7/dist-packages/numpy/core/_asarray.py in asarray(a, dtype, order)
81
82 """
---> 83 return array(a, dtype, copy=False, order=order)
84
85
ValueError: invalid literal for int() with base 10: '15056BL'