【问题标题】:Adding two boolean dataframes添加两个布尔数据框
【发布时间】:2018-01-29 09:49:47
【问题描述】:
我目前有两个布尔数据框,如下所示:
df1
df2
我需要将 df1 乘以 +1 并将 df2 乘以 -1 并将两个数据帧相加,例如得到 df3,它应该如下所示,并且 df1 中的任何 TRUE 值都有 +1 和 -1来自 df2 中的任何 TRUE 值。
df3
我该怎么做?
【问题讨论】:
标签:
python
pandas
dataframe
boolean
【解决方案1】:
只需使用 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