одиночный позиционный индексатор является ошибкой индекса за пределами границ - PullRequest
0 голосов
/ 12 ноября 2018
user_ratings_matrix = training_df.pivot(index='userId', columns='movieId', values='rating')
users = user_ratings_matrix.index.values 

print('Creating corated data frame...')
with open('similarities/UsersCorated.csv', 'w') as result_file:
    print('user1,user2,corated', file=result_file)

    print('Calculating corated between users...')
    for u1 in tqdm(users, total=len(users)):
        for u2 in users:

            movies_u1 = ~np.isnan(user_ratings_matrix.iloc[u1 - 1])
            movies_u2 = ~np.isnan(user_ratings_matrix.iloc[u2 - 1])

            same_movies = np.logical_and(movies_u1, movies_u2)
            num_same_movies = list(same_movies).count(True)
        print(f"{u1},{u2},{num_same_movies}", file=result_file)

ошибка

IndexError Traceback (самый последний вызов последний) в () 1 ----> 2 сходства_функций.Corated_Matrix () 3 Similarities_Functions.Corated_S Similarity () 4 5 отпечатков ('готово !!!')

~ / Документы / PhD / IntelliSys19 / журнал / ColdStart_Experiment / Similarities_Functions.py в Corated_Matrix () 145 для u2 в пользователях: 146 оценок1 = np.nan_to_num (np.array (user_ratings_matrix.iloc [u1 - 1] .values)) -> 147 оценок2 = np.nan_to_num (np.array (user_ratings_matrix.iloc [u2 - 1] .values)) 148 149 sim = Pearsonr (рейтинги1, рейтинги2)

~ / anaconda3 / lib / python3.6 / site-packages / pandas / core / indexing.py в getitem (self, key) 1371 1372 Maybe_callable = com._apply_if_callable (key, self.obj) -> 1373 вернуть self._getitem_axis (Maybe_callable, axis = axis) 1374 1375 def _is_scalar_access (self, key):

~ / anaconda3 / lib / python3.6 / site-packages / pandas / core / indexing.py в _getitem_axis (self, key, axis) 1828 1829 # проверить местоположение -> 1830 self._is_valid_integer (ключ, ось) 1831 1832 вернуть self._get_loc (ключ, ось = ось)

~ / anaconda3 / lib / python3.6 / site-packages / pandas / core / indexing.py в _is_valid_integer (self, key, axis) 1711 l = len (ax) 1712, если key> = l или key <-l: -> 1713 повысить IndexError («одиночный позиционный индексатор выходит за пределы») 1714 вернуть True 1715

IndexError: один позиционный индексатор выходит за пределы

1 Ответ

0 голосов
/ 12 ноября 2018
IndexError: single positional indexer is out-of-bounds

Я полагаю, что это просто говорит о том, что одно из ваших нелепых заявлений ищет что-то, чего не существует. Если ваш DataFrame имеет длину 5 строк, iloc [5, 0] выдаст за пределы. Это потому, что последняя строка будет iloc [4, 0], так как она начинает отсчитывать от 0.

...