我有一个pandas系列,我想将所有0的值设置为100到1000之间的随机数。有没有一个直接的方法来做到这一点?我只见过这样的迂回方式:
nums = np.random.choice(range(100, 1100), size = 924) df.loc[df['Target']==0] = nums
我在这里得到的错误是“当使用可迭代对象设置时,必须具有相等的len键和值”。大小是924,因为我知道我想改变多少个值。
syqv5f0l1#
您只需指定列即可。将最后一行切换到df.loc[df['Target']==0, 'Target'] = nums
df.loc[df['Target']==0, 'Target'] = nums
4c8rllxm2#
一行一行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行
import random df.Target = df.Target.apply(lambda x: random.randint(1, 1000) if x == 0 else x)
如果Target中该行的值是0,则生成一个随机数,否则返回已经存在的值。
0
2条答案
按热度按时间syqv5f0l1#
您只需指定列即可。将最后一行切换到
df.loc[df['Target']==0, 'Target'] = nums
4c8rllxm2#
一行一行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行行
如果Target中该行的值是
0
,则生成一个随机数,否则返回已经存在的值。