使用另一个数据框中的布尔值替换一个 pandas 数据框中的值?

Replace values in one pandas dataframe using boolean values from another dataframe?

我有两个 pandas 数据框,一个包含数据,另一个包含 True/False 个值

  1. iris
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
5.1 3.5 1.4 0.2 setosa
4.9 3.0 1.4 0.2 setosa
4.7 3.2 1.3 0.2 setosa
  1. iris_bool
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
True False True False False
False True False False False
False False False False True

我想根据 table 2 中相应的布尔值将 table 1 中的值替换为 NA/NaNs。有没有简单的方法可以做到这一点?

尝试 mask:

iris = iris.mask(~iris_bool)

输出:

>>> iris
   Sepal.Length  Sepal.Width  Petal.Length  Petal.Width Species
0           5.1          NaN           1.4          NaN     NaN
1           NaN          3.0           NaN          NaN     NaN
2           NaN          NaN           NaN          NaN  setosa

你可以直接赋值

iris[~iris_bool]=np.nan