Присвоить случайное значение каждой ячейке столбца в кадре данных - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь перебрать столбец в DataFrame панды, чтобы присвоить каждой ячейке уникальное случайное значение с помощью функции numpy.rand.randint.

for i in csv_with_id.iteritems():
    csv_with_id['index'] = np.random.randint(1,10000)

Результат выглядит следующим образом: enter image description here

Моя проблема - повторяющиеся значения в столбце индекса ..

Я также пытался зацикливаться с iterrows() и обычным csv_with_id

Может Я получил какое-то направление на это?

Спасибо

1 Ответ

0 голосов
/ 16 января 2020

Используя функцию random.choice из numpy, вы можете указать replace=False, что говорит о том, что у вас не может быть дважды одинаковых значений. Эта функция вернет вам целый вектор, который вы можете присвоить df.index

Пример на фиктивном фрейме данных

import numpy as np
import pandas as pd
df = pd.DataFrame({'col1': range(8000)})
# get number of rows df values between 0 and 9999 - all distinct
df.index = np.random.choice(range(10000),df.shape[0],replace=False)

Вы можете проверить, что количество отдельных элементов в df.index количество строк в df:

len(df.index.unique())
# 8000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...