根据条件将pandas系列中的值设置为随机值

s2j5cfk0  于 2023-04-28  发布在  其他
关注(0)|答案(2)|浏览(143)

我有一个pandas系列,我想将所有0的值设置为100到1000之间的随机数。有没有一个直接的方法来做到这一点?我只见过这样的迂回方式:

nums = np.random.choice(range(100, 1100), size = 924)

df.loc[df['Target']==0] = nums

我在这里得到的错误是“当使用可迭代对象设置时,必须具有相等的len键和值”。
大小是924,因为我知道我想改变多少个值。

syqv5f0l

syqv5f0l1#

您只需指定列即可。将最后一行切换到
df.loc[df['Target']==0, 'Target'] = nums

4c8rllxm

4c8rllxm2#

一行一行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行

import random
df.Target = df.Target.apply(lambda x: random.randint(1, 1000) if x == 0 else x)

如果Target中该行的值是0,则生成一个随机数,否则返回已经存在的值。

相关问题