我有一个可以使用以下代码复制的MWE:
import pandas as pd
a = pd.DataFrame([[1,2],[3,4]], columns=['A', 'B'])
b = pd.DataFrame([[True,False],[False,True]], columns=['A', 'B'])
创建以下数据帧:
In [8]: a
Out[8]:
A B
0 1 2
1 3 4
In [9]: b
Out[9]:
A B
0 True False
1 False True
我的问题是,如何根据数据框A
中的布尔值更改数据框B
的值?
例如,如果我想在数据框NAN
中生成A
值,并且数据框False
中有B
的实例?
答案 0 :(得分:1)
如果需要将False
替换为NaN
:
print (a[b])
A B
0 1.0 NaN
1 NaN 4.0
或:
print (a.where(b))
A B
0 1.0 NaN
1 NaN 4.0
如果需要将True
替换为NaN
:
print (a[~b])
A B
0 NaN 2.0
1 3.0 NaN
或:
print (a.mask(b))
A B
0 NaN 2.0
1 3.0 NaN
print (a.where(b, 7))
A B
0 1 7
1 7 4
print (a.mask(b, 7))
A B
0 7 2
1 3 7
print (a.where(b, 'TEST'))
A B
0 1 TEST
1 TEST 4