使用另一个数据框中的布尔值替换一个 pandas 数据框中的值?
Replace values in one pandas dataframe using boolean values from another dataframe?
我有两个 pandas 数据框,一个包含数据,另一个包含 True/False 个值
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
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
我有两个 pandas 数据框,一个包含数据,另一个包含 True/False 个值
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 |
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