gpt4 book ai didi

python - 在一组条件下创建 random.randint?

转载 作者:太空宇宙 更新时间:2023-11-04 00:24:20 25 4
gpt4 key购买 nike

我有一个名为:cars 的专栏并想创建另一个名为 persons 的使用 random.randint()我有:

dat['persons']=np.random.randint(1,5,len(dat))

这样我就可以输入使用这些的人数,但我会想知道如何在 suv 中添加条件例如,类别将仅生成从 4 到 9 的数字。

cars | persons
suv 4
sedan 2
truck 2
suv 1
suv 5

最佳答案

您可以为您的系列创建一个索引,其中匹配行为 True,其他所有内容为 False。然后,您可以使用 loc[] 分配给与该索引匹配的行选择行;然后,您只为那些选定的行生成值的数量:

m = dat['cars'] == 'suv'
dat.loc[m, 'persons'] = np.random.randint(4, 9, m.sum())

您还可以在 cars 系列上使用 apply 来创建新列,在每次调用中创建一个新的随机值:

dat['persons'] = dat.cars.apply(
lambda c: random.randint(4, 9) if c == 'suv' else random.randint(1, 5))

但这必须对每一行进行单独的函数调用。使用口罩会更有效率。

关于python - 在一组条件下创建 random.randint?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47995898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com