在我的数据框中,我想用 nan 替换低于 1 和高于 5 的每个值。
这段代码有效
persDf = persDf.mask(persDf < 1000)
我得到了作为 nan 的所有值,但这个没有:
persDf = persDf.mask((persDf < 1) and (persDf > 5))
我不知道为什么会这样。我已经检查了手册页和针对明显相似问题的不同解决方案,但找不到解决方案。有谁有一个想法可以帮助我解决这个问题?
Use the |
运算符,因为值不能< 1
AND > 5
:
persDf = persDf.mask((persDf < 1) | (persDf > 5))
另一种方法是使用np.where
并在里面调用它pd.DataFrame
:
pd.DataFrame(data=np.where((df < 1) | (df > 5), np.NaN, df),
columns=df.columns)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)