添加两个布尔数据帧

时间:2017-08-21 10:43:30

标签: python pandas dataframe boolean

我目前有两个布尔数据框,如下所示:

DF1

enter image description here

DF2

enter image description here

我需要将df1乘以+1,df2乘以-1并将两个数据帧相加,例如得到df3,它应该如下所示,并且在df1和-1中的任何TRUE值都有+1来自df2中的任何TRUE值。

DF3

enter image description here

我该怎么做?

1 个答案:

答案 0 :(得分:2)

只需使用df.astype转换为int并添加它们:

df1.astype(int) + df2.astype(int).mul(-1)

演示:

In [709]: df1
Out[709]: 
       A      B      C      D      E
0   True  False  False  False  False
1   True  False  False   True   True
2  False  False  False  False   True
3   True   True  False   True   True
4   True  False  False  False   True
5   True  False  False   True  False
6  False  False   True  False   True
7   True   True  False  False   True
8   True  False  False  False   True
9  False   True  False   True   True

In [710]: df2
Out[710]: 
       A      B      C      D      E
0   True  False   True  False  False
1  False   True  False   True  False
2  False  False  False   True   True
3   True  False  False   True  False
4   True   True  False   True  False
5  False   True  False   True   True
6   True  False   True  False  False
7   True  False   True   True   True
8  False   True   True   True  False
9  False  False  False  False  False

In [711]: df1.astype(int) + df2.astype(int).mul(-1)
Out[711]: 
   A  B  C  D  E
0  0  0 -1  0  0
1  1 -1  0  0  1
2  0  0  0 -1  0
3  0  1  0  0  1
4  0 -1  0 -1  1
5  1 -1  0  0 -1
6 -1  0  0  0  1
7  0  1 -1 -1  0
8  1 -1 -1 -1  1
9  0  1  0  1  1