Как я могу добавить случайную категорию в фрейм данных? - PullRequest
1 голос
/ 10 июля 2020

Я не могу понять этого. Я провожу некоторое тестирование и пытаюсь добавить случайные категории в фрейм данных для тестирования, но когда я это делаю, он добавляет их для всех строк вместо случайного распределения.

Вот мой код:

import random
catergory = ['dog', 'cat', 'monkey']
df['animal'] = random.choice(catergory)
df['animal'].value_counts()

Вывод:

monkey
monkey    124705
Name: animal, dtype: int64

Я понимаю, что он делает (генерирует случайный вызов один раз и применяет его ко всему DF), но как я могу заставить его генерировать случайное значение для каждой строки.

1 Ответ

4 голосов
/ 10 июля 2020

Используйте np.random.choice вместе с size равной длине фрейма данных для генерации случайной выборки заданного размера:

df['animal'] = np.random.choice(catergory, size=len(df))

Пример:

np.random.seed(12345)

df = pd.DataFrame({'ColA': np.random.randint(1, 10, 10)})
catergory = ['dog', 'cat', 'monkey']

df['animal'] = np.random.choice(catergory, size=len(df))
df['animal'].value_counts()

Результат:

monkey    5
cat       4
dog       1
Name: animal, dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...