#python #pandas #pivot-table
Вопрос:
у меня возникли некоторые проблемы с моим кодом python, когда я пытаюсь проверить реализованную функцию для моего машинного обучения для факторизации матрицы создания с использованием идентификатора пользователя, идентификатора меню и оценки по значению.
я хочу вызвать строковую функцию user_id с помощью : … # проверьте реализованную выше функцию
similar_users(["U00004"], interactions_matrix)[0][:3]
затем я получаю некоторую обратную связь, как это :
...
KeyError Traceback (most recent call last)
/usr/local/lib/python3.7/dist-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance)
2897 try:
-> 2898 return self._engine.get_loc(casted_key)
2899 except KeyError as err:
pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()
pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()
KeyError: 1
The above exception was the direct cause of the following exception:
KeyError Traceback (most recent call last)
6 frames
<ipython-input-58-1f6410c771dd> in <module>()
1 # check the implemented function above
2
----> 3 similar_users(["U00004"], interactions_matrix)[0][:3]
<ipython-input-56-17fa7d9da92c> in similar_users(user_id, interactions_matrix)
7 similarity = []
8 for user in range(1, interactions_matrix.shape[0] 1):
----> 9 sim = cosine_similarity([interactions_matrix.loc[user_id]], [interactions_matrix.loc[user]])
10 similarity.append((user, sim))
11
/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py in __getitem__(self, key)
877
878 maybe_callable = com.apply_if_callable(key, self.obj)
--> 879 return self._getitem_axis(maybe_callable, axis=axis)
880
881 def _is_scalar_access(self, key: Tuple):
/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py in _getitem_axis(self, key, axis)
1108 # fall thru to straight lookup
1109 self._validate_key(key, axis)
-> 1110 return self._get_label(key, axis=axis)
1111
1112 def _get_slice_axis(self, slice_obj: slice, axis: int):
/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py in _get_label(self, label, axis)
1057 def _get_label(self, label, axis: int):
1058 # GH#5667 this will fail if the label is not present in the axis.
-> 1059 return self.obj.xs(label, axis=axis)
1060
1061 def _handle_lowerdim_multi_index_axis0(self, tup: Tuple):
/usr/local/lib/python3.7/dist-packages/pandas/core/generic.py in xs(self, key, axis, level, drop_level)
3491 loc, new_index = self.index.get_loc_level(key, drop_level=drop_level)
3492 else:
-> 3493 loc = self.index.get_loc(key)
3494
3495 if isinstance(loc, np.ndarray):
/usr/local/lib/python3.7/dist-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance)
2898 return self._engine.get_loc(casted_key)
2899 except KeyError as err:
-> 2900 raise KeyError(key) from err
2901
2902 if tolerance is not None:
KeyError: 1
...
кто-нибудь может помочь мне с этой проблемой?