我目前有两个布尔数据框,如下所示:
DF1
DF2
我需要将df1乘以+1,df2乘以-1并将两个数据帧相加,例如得到df3,它应该如下所示,并且在df1和-1中的任何TRUE值都有+1来自df2中的任何TRUE值。
DF3
我该怎么做?
答案 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