【问题标题】: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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    相关资源
    最近更新 更多