2017-11-03 15 views
1

book crossingデータセットの列車データマトリックスとテストデータマトリックスを作成したい。しかし、ISBNコードのBook Idには文字が含まれている可能性があります。サポートされていないオペランドのタイプ(複数可)について - :: 'STR' と「int型列車/テストマトリックス交差点推薦システム

#Create two user-item matrices, one for training and another for testing 
train_data_matrix = np.zeros((n_users, n_items)) 
for line in train_data.itertuples(): 
    train_data_matrix[line[1]-1, line[2]-1] = line[3] 
    print (line) 

test_data_matrix = np.zeros((n_users, n_items)) 
for line in test_data.itertuples(): 
    test_data_matrix[line[1]-1, line[2]-1] = line[3] 

ライン[2] -1型エラーが発生します:だから、私は(tutorialから)このコードを適用することはできません。私は列車のテストマトリックスを作る別の方法を見つける必要があります。列車/テストマトリックスを構築する他の方法は?印刷ラインの

例train_dataを反復処理:

Pandas(Index=874192, user_id=20859, ISBN='3442248876X', rating=0, title='Die Krieger der Drachenlanze 06. Die Ritter des Schwerts.', Location='tübingen, baden-württemberg, germany', Age=0.0)

注:私は、コードが動作するように、ISBNを予約するマッピングされただけの整数を含むされbook_idと呼ばれる新しい列を作成する方法について考えたが、私ドンそれをやる方法は分かりません。

答えて

2

それは使用して文字列が含まれているように、そのnumpyのが問題

せずに動作するはずです後は、このスニペット

isbn_list = list(df.ISBN.unique()) 
df['ISBN'] = df.ISBN.astype('category', categories=isbn_list).cat.codes 

、例えば、ISBN列をエンコードする必要があります