Как я могу запустить вероятностные выражения 50/50 для строк строк с двумя вариантами, разделенными "или"? - PullRequest
0 голосов
/ 21 марта 2020

Я работаю над геоданным (pandas) с информацией о пользователях социальных сетей и их муниципалитете. Колонна с их родным муниципалитетом насчитывает 524 муниципалитета. 453 из них имеют два муниципалитета в форме линейной линии; 'City1 or City2'

two_cities = [s for s in gdf['home_municipality'] if " or " in s]
print(two_cities)

До сих пор я создал список с приведенным выше кодом, в который включены только значения со знаком «или». Мой вопрос как я могу выполнить вероятность 50/50 для элементов списка, случайным образом выбирая один муниципалитет для назначения каждому соответствующему пользователю?

Вот фрагмент списка:

['Vaasa or Mustasaari', 'Helsinki or Espoo', 'Vantaa or Turku', 'Helsinki or Espoo', 'Paimio or Turku', 'Turku or Helsinki', 'Helsinki or Espoo']

1 Ответ

0 голосов
/ 21 марта 2020

Просто взяв одну из ваших строк, 'Vaasa or Mustasaari', например, вы можете преобразовать ее в список двух городов, а затем использовать random.randit, чтобы случайным образом выбрать целое число от 0 до 1 и используйте это как индекс для города, чтобы взять из списка. Поскольку возможны только два целых числа, это соответствует вероятности 50/50.

import random

city_string = 'Vaasa or Mustasaari'
cities = city_string.split(' or ')
user_city = cities[random.randint(0, 1)]
print(user_city)

Выходы:

>>> user_city = cities[random.randint(0, 1)]
>>> print(user_city)
Mustasaari
>>> user_city = cities[random.randint(0, 1)]
>>> print(user_city)
Vaasa
...