TypeError:str和int不支持的操作数类型

时间:2019-07-13 08:20:41

标签: python

我正在尝试使用python代码来训练和测试推荐系统的数据,当它显示TypeError:未分配的操作数类型。

#creating user_job matrices for trainning and testing
train_data_matrix=np.zeros((n_users,n_jobs))
for line in train_data.itertuples():
   # print(n_users)
   train_data_matrix[line[1]-1,line[2]-1]=line[3]
print(train_data_matrix

TypeError                                 Traceback (most recent call last)
<ipython-input-112-8bf50ecb6b71> in <module>
      3 for line in train_data.itertuples():
      4    # print(n_users)
----> 5    train_data_matrix[line[1]-1,line[2]-1]=line[3]
      6 print(train_data_matrix)

TypeError: unsupported operand type(s) for -: 'str' and 'int'

请帮助我解决这个问题

1 个答案:

答案 0 :(得分:0)

使用int将字符串转换为整数。

#creating user_job matrices for trainning and testing
train_data_matrix=np.zeros((n_users,n_jobs))
for line in train_data.itertuples():
   # print(n_users)
   train_data_matrix[int(line[1])-1,int(line[2])-1]=int(line[3])
print(train_data_matrix)

line[1]str类型,这就是出错的原因。通过line[1]检查print(type(line[1]))的类型。