python - 熊猫每行的条件替换
问题描述
我可能正在做一些非常简单的事情,但我无法弄清楚那里的诀窍。
我有一个数据框,我想用某个随机值替换特定列中超过从零开始的值的值。我曾认为这是实现这一目标的一种方式:
self.dfile['foo'] = np.where(self.dfile['foo'] >= 0, random.uniform(4, 9), self.dfile['foo'])
它似乎在所有超过 0 的值中给出相同的随机值。如何获得不同的值?
解决方案
random.uniform(4, 9)
返回一个整数,np.where
然后在所有行中广播。相反,使用np.random
,它给出了一个指定长度的数组:
self.dfile['foo'] = np.where(self.dfile['foo'] >= 0,
np.random.uniform(4, 9, len(self.dfile.index)),
self.dfile['foo'])
推荐阅读
- sql - 比较这两个查询时,在 SQL 中计算汇总统计信息的最佳方法是什么?
- mysql - 使用 dayofyear() 函数比较日期
- r - 在 R 中使用 geom_sf 和 geom_point 时轴会减小
- javascript - 你如何制作javascript阻塞代码?
- postgresql - 在 Postgres 中运行系统命令并在 Insert 中使用返回值
- ibm-mq - DataPower MQ 连接数达到最大限制
- android - SystemClock.sleep 或 Thread.sleep 是否只是停止 UI?
- ruby-on-rails - 为什么 `bundle exec rake test` 在 Ubuntu 19.10 (PopOS) 中挂起?
- json - 确保在 JSON 模式中数组只有一个属性为真
- yii - 如何在搜索中显示来自同一个表的 2 个表单