【发布时间】:2020-04-04 12:11:12
【问题描述】:
我有两个 DataFrame,其中每一列都包含 True/False 语句。我正在寻找一种方法来测试所有可能的组合,并找出 df1 中每一行的“真”在 df2 中的相应行中也为“真”。
参考下面的数据,逻辑是这样的:
对于每一行,从“Main1”列开始,测试行是否等于 True,以及“Sub1”列中的行是否也为 True。接下来,测试“Main1”中的行是否等于 true,以及“Sub1”列中的行是否为 True,“sub2”列是否也为 True。在这种情况下,如果所有值都为 True,则输出将为 True。然后对所有列和所有可能的组合重复。
df1:
Main1 Main2 Main3
0 True False True
1 False False False
2 False True True
3 False False True
4 False True True
5 True True True
6 True False False
df2:
Sub1 Sub2 Sub3
0 False False True
1 False True False
2 True False True
3 False False False
4 True True False
5 False False False
6 True True True
输出将类似于这样。
当然,我可以手动执行此操作,但这会很及时,而且会有出错的余地。
Main1Sub1 Main1Sub1Sub2 ... Main3Sub2Sub3 Main3Sub3
0 False False ... False True
1 False False ... False False
2 False False ... False True
3 False False ... False False
4 False False ... False False
5 False False ... False False
6 True True ... False False
[7 rows x 18 columns]
感谢任何有关如何解决此问题的帮助!
【问题讨论】:
-
您能说明一下您想要哪些组合吗?比如你想要Main1Sub1Sub3、Main1Main2Sub1、Main1Main2、Sub1Sub2组合吗?
标签: python pandas logic boolean-logic