我如何 运行 在线串上的 50/50 概率表达式,两种可能性由 "or" 分隔?

How can I run 50/50 probability expressions on linestrings with two possibilities separated by "or"?

我正在处理一个地理数据框 (pandas),其中包含有关社交媒体用户及其所在城市的信息。他们所在城市的列有 524 个城市。其中453个有两个直辖市,呈线串形式; 'City1 or City2'

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

到目前为止,我已经用上面的代码创建了一个列表,其中只包含 "or" 的值。我的问题是;我怎样才能 运行 在列表项上以 50/50 的概率随机选择一个城市分配给每个用户?

这是列表项的片段:

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

就拿你的一个字符串'Vaasa or Mustasaari'为例,你可以把它转换成两个城市的列表,然后用random.randit随机select一个整数介于 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