Pandas 多个条件下的掩码
Pandas Mask on multiple Conditions
在我的数据框中,我想用 nan 替换低于 1 和高于 5 的每个值。
此代码有效
persDf = persDf.mask(persDf < 1000)
我得到的每个值都是 nan,但这个不是:
persDf = persDf.mask((persDf < 1) and (persDf > 5))
我不知道为什么会这样。我已经检查了手册页和关于明显相似问题的不同解决方案,但找不到解决方案。有没有人有什么想法可以帮助我解决这个问题?
使用 |
运算符,因为值不能是 < 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)
在我的数据框中,我想用 nan 替换低于 1 和高于 5 的每个值。
此代码有效
persDf = persDf.mask(persDf < 1000)
我得到的每个值都是 nan,但这个不是:
persDf = persDf.mask((persDf < 1) and (persDf > 5))
我不知道为什么会这样。我已经检查了手册页和关于明显相似问题的不同解决方案,但找不到解决方案。有没有人有什么想法可以帮助我解决这个问题?
使用 |
运算符,因为值不能是 < 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)