【发布时间】:2019-09-29 07:24:55
【问题描述】:
在我的数据框中,我想用 nan 替换低于 1 和高于 5 的每个值。
此代码有效
persDf = persDf.mask(persDf < 1000)
我将每个值都作为 nan 得到,但这个没有:
persDf = persDf.mask((persDf < 1) and (persDf > 5))
我不知道为什么会这样。我已经检查了手册页和明显相似问题的不同解决方案,但找不到解决方案。有没有人有可以帮助我的想法?
【问题讨论】:
-
用
|替换and -
一个值不能兼得?它的
or,最好使用|,因此我会使用:np.where((persDf< 1) | (persDf> 5), np.NaN, persDf) -
@Erfan:我想取回一个数据帧,所以我坚持使用 mask 命令。奇怪的是,使用或给了我一个异常发生:ValueError 但是|按我的意愿工作。谢谢。如果你愿意,你可以创建一个我会接受的答案。
-
很高兴 :)