我正试图以某种概率生成虚拟数据。假设我想要按性别分列的关于人的虚假数据。我已经在R中准备好了,您可以看到下面的代码行。
gender = sample(x=c("M","F"), prob = c(.6, .4),size=100,replace=TRUE)现在,我想准备同样的东西,但现在用Pandas数据框架中的Python编写。有人能帮我解决这个问题吗?
发布于 2022-09-19 14:47:09
您可以使用numpy.random.choice,默认情况下,replace是True。
>>> np.random.choice(a=["M", "F"], size=100, p=[0.6, 0.4])
array(['F', 'M', 'F', 'M', 'M', 'M', 'M', 'M', 'M', 'F', 'M', 'F', 'M',
'M', 'F', 'M', 'M', 'M', 'F', 'F', 'M', 'M', 'F', 'F', 'M', 'F',
'F', 'M', 'M', 'F', 'F', 'M', 'F', 'F', 'M', 'F', 'M', 'M', 'F',
'M', 'M', 'F', 'F', 'M', 'M', 'F', 'M', 'M', 'F', 'M', 'M', 'M',
'F', 'F', 'M', 'F', 'M', 'M', 'M', 'M', 'M', 'M', 'F', 'F', 'M',
'M', 'F', 'F', 'M', 'F', 'M', 'F', 'M', 'M', 'F', 'M', 'F', 'F',
'M', 'F', 'M', 'F', 'M', 'F', 'M', 'M', 'F', 'M', 'M', 'M', 'F',
'F', 'F', 'F', 'F', 'M', 'M', 'F', 'F', 'F'], dtype='<U1')发布于 2022-09-19 14:49:55
尝尝这个。random.choices从可迭代的环境中获取k选项,条件是:
import random
print(random.choices("MF", weights=[.6,.4], k=100))测试:
>>> l = random.choices("MF", weights=[.6,.4], k=100)
>>> l
['M', 'F', 'F', 'M', 'M', 'M', 'M', 'M', 'F', 'M', 'M', 'F', 'M', 'M', 'M', 'F', 'M', 'M', 'M', 'M', 'F', 'M', 'M', 'M', 'F', 'F', 'M', 'F', 'F', 'M', 'M', 'F', 'M', 'M', 'M', 'M', 'M', 'M', 'M', 'M', 'M', 'M', 'F', 'M', 'M', 'F', 'M', 'F', 'M', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'M', 'F', 'F', 'M', 'M', 'M', 'F', 'F', 'M', 'M', 'M', 'F', 'F', 'F', 'M', 'F', 'F', 'M', 'M', 'F', 'F', 'M', 'M', 'M', 'F', 'M', 'M', 'F', 'M', 'M', 'M', 'M', 'M', 'F', 'M', 'M', 'M', 'F', 'F', 'F', 'M', 'F', 'F', 'M']
>>> l.count("M")
60
>>> l.count("F")
40https://stackoverflow.com/questions/73775227
复制相似问题