gpt4 book ai didi

python - 每行的 Pandas 有条件替换

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

我可能正在做一些非常简单的事情,但我想不出其中的窍门。

我有一个数据框,我想用某个随机值替换特定列中超过零值的值。我原以为这是实现这一目标的一种方式:

self.dfile['foo'] = np.where(self.dfile['foo'] >= 0, random.uniform(4, 9), self.dfile['foo'])

它似乎在所有超过 0 的值中给出相同的随机值。我如何获得不同的值?

最佳答案

使用numpy.random.uniform通过 DataFrame 的长度指定长度:

v = np.random.uniform(4, 9, size=len(self.dfile))
self.dfile['foo'] = np.where(self.dfile['foo'] >= 0, v,self.dfile['foo'])

示例:

np.random.seed(123)

dfile = pd.DataFrame({
'foo':[0,5.1,1,0,20.4,10.7],
})

v = np.random.uniform(4, 9, size=len(dfile))

dfile['foo1'] = np.where(dfile['foo'] >= 0, v, dfile['foo'])
dfile['foo2'] = np.where(dfile['foo'].between(0, 10), v ,dfile['foo'])
print (dfile)

foo foo1 foo2
0 0.0 7.482346 7.482346
1 5.1 5.430697 5.430697
2 1.0 5.134257 5.134257
3 0.0 6.756574 6.756574
4 20.4 7.597345 20.400000
5 10.7 6.115532 10.700000

关于python - 每行的 Pandas 有条件替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54019278/

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