Как указать случайное начальное число при использовании случайного выбора Python? - PullRequest
0 голосов
/ 25 октября 2018

У меня есть список из четырех строк.Затем в фрейме данных Pandas я хочу создать переменную, случайным образом выбирающую значение из этого списка, и назначить ее каждой строке.Я использую случайный выбор numpy, но, читая их документацию, я не выбрал параметр seed.Как я могу указать случайное начало для случайного назначения, чтобы каждый раз случайное назначение было одинаковым?

service_code_options = ['899.59O', '12.42R', '13.59P', '204.68L']
df['SERVICE_CODE'] = [np.random.choice(service_code_options ) for i in df.index]

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Вы должны определить его ранее с помощью numpy.random.seed, также нет необходимости понимать список, поскольку возможно использование numpy.random.choice с параметром size:

np.random.seed(123)

df = pd.DataFrame({'a':range(10)})

service_code_options = ['899.59O', '12.42R', '13.59P', '204.68L']
df['SERVICE_CODE'] = np.random.choice(service_code_options, size=len(df))
print (df)
   a SERVICE_CODE
0  0       13.59P
1  1       12.42R
2  2       13.59P
3  3       13.59P
4  4      899.59O
5  5       13.59P
6  6       13.59P
7  7       12.42R
8  8      204.68L
9  9       13.59P
0 голосов
/ 25 октября 2018

Документация numpy.random.seed

np.random.seed(this_is_my_seed)

Это может быть целое число или список целых чисел

np.random.seed(300)

Или

np.random.seed([3, 1415])

Пример

np.random.seed([3, 1415])

service_code_options = ['899.59O', '12.42R', '13.59P', '204.68L']
np.random.choice(service_code_options, 3)

array(['899.59O', '204.68L', '13.59P'], dtype='<U7')

Обратите внимание, что я передал 3 в функцию choice, чтобы указать размер массива.

numpy.random.choice

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...