user_book_interaction = pd.pivot_table(interactions_selected, index='user_id', columns='book_id', values='rating') # fill missing values with 0 user_book_interaction = user_book_interaction.fillna(0) user_id = list(user_book_interaction.index) user_dict = {} counter = 0 for i in user_id: user_dict[i] = counter counter += 1 # convert to csr matrix user_book_interaction_csr = csr_matrix(user_book_interaction.values) user_book_interaction_csr