我有一个包含四个字符串的列表。然后在Pandas Dataframe 中,我想创建一个变量,从列表中随机选择一个值,并分配到每一行。我使用的是numpy的随机选择,但阅读他们的文档,没有种子选项。我如何指定随机种子到随机分配,以便每次的随机分配都是相同的?
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]
3条答案
按热度按时间von4xj4u1#
您需要在
numpy.random.seed
之前定义它,也不需要列表解析,因为可以使用numpy.random.choice
和参数size
:wbrvyc0a2#
文件
numpy.random.seed
可以是整数或整数列表
或者
示例
注意,我向
choice
函数传递了一个3
,以指定数组的大小。numpy.random.choice
yv5phkfx3#
根据numpy v1.2.4中
numpy.random.seed
的注解:最佳实践是使用专用的Generator示例,而不是直接在random模块中公开的随机变量生成方法。
这样的生成器是使用
np.random.default_rng
构造的。因此,当前的最佳实践是使用带有种子的
np.random.default_rng
来构建生成器,而不是np.random.seed
,该生成器可进一步用于可重现的结果。结合jezrael's answer和当前的最佳实践,我们拥有: