Ваш вопрос кажется расплывчатым.
У вас есть случайный массив с 1662 уникальными значениями в item_id - это означает, что его возможное значение существует в item_id, а также возможно, что его нет. Если это так, вы хотите переиндексировать массив numpy a в соответствии со значением - поэтому, если число 36 находится в «a» и в «item_id», вы хотите [36] = 36?
Пожалуйста, уточните.
Если это то, что вы хотите, то просто создайте упорядоченный список для каждого item_id, например, так:
a = np.arrange(max(data.item_id))
b = np.isin(a, data.item_id)
a[b] = np.full(a[b], data.item_id)
ОБНОВЛЕНИЕ: Для [36] = random- число
a[b] = np.full(a[b], np.random.normal())
Предложение : Вы также можете добавить случайные числа в свой фрейм данных как:
data['random'] = np.random.random(data.count())
# create a dict for indexing
random_dict = dict(zip(data['item_id'].tolist(), data['random'].tolist()))
# or set item_id as index:
data.index = data['item_id'].values
Дайте мне знать, если это поможет!