Python 如何比较和合并三个数据帧?
一点背景: 我有三个DOORS模块(A、B和C),它们相互跟踪,如下所示:Python 如何比较和合并三个数据帧?,python,pandas,Python,Pandas,一点背景: 我有三个DOORS模块(A、B和C),它们相互跟踪,如下所示: A --> B A --> C B --> C B <-- A C <-- A C <-- B B和C看起来是这样的: # B Table # C Table | A | B | C | | A | B | C | =========================
A --> B
A --> C
B --> C
B <-- A
C <-- A
C <-- B
B和C看起来是这样的:
# B Table # C Table
| A | B | C | | A | B | C |
========================= =========================
| A_1 | B_1 | C_1 | | A_1 | B_1 | C_1 |
------------------------- -------------------------
| | B_2 | C_3 | | A_2 | | C_3 |
------------------------- | A_4 | B_2 | |
| A_3 | B_4 | | -------------------------
-------------------------
| A_3 | B_5 | |
-------------------------
因为模块之间的跟踪可能不完整,所以我希望在表中找到“间隙”。例如,A可以跟踪到C,B可以跟踪到C,但不能相互跟踪
问题是:
我已经能够将每个表捕获到Python数据帧中。我希望做两件事:
我认为你任务中最困难的部分是定义缺失的环节是什么。您可能需要花一些时间来评估各种可能的配置,因为它并不像看上去那么简单(或者,相反,它可能非常简单) 例如,如果表A包含A1,B1,B包含B1,C1,C包含A1,C1,那么这里有多少缺少的链接?或者根本没有?如果任何表格包含A1、B1、C1,会有什么不同 另一个例子:[A1,B1],[B1,C2],[B2,C2]。这里有多少缺少的链接 你可以很容易地做很多其他的例子,而不是简单地回答
当你严格定义什么是缺少的链接时,你可以(也许很容易)创建一个算法,在你的表中查找它们,不管它们是如何构造的:在3个表中,还是在一个表中,都可以从原始表中通过连接、追加或边到边连接形成。我不太确定,可能不仅仅是我,这些帧表示什么,缺少哪些值(A-->C和B-->C,但缺少A-->B)意味着什么,并将这些值合并到一个表中。请你详细说明一下好吗?这是一个复杂的问题,我正在尽力简化。每个表表示每个模块对象的ID。例如,表A的第一行有A_1、B_1、C_1。A_1是表A第1行的ID。B_1指向B表ID。C_1指向C表ID。现在看一下表A和B的第二行。它们都指向表C,但并不相互指向。这是一个缺失的环节。这有用吗?@YannisP。我更新了这个问题的细节。希望这有助于进一步解释这个问题。以表a单元格3,2为例,数据框中的单元格内容是如何表示的?@YannisP。它是一个有两行的字符串
“B_4\nB_5”
# B Table # C Table
| A | B | C | | A | B | C |
========================= =========================
| A_1 | B_1 | C_1 | | A_1 | B_1 | C_1 |
------------------------- -------------------------
| | B_2 | C_3 | | A_2 | | C_3 |
------------------------- | A_4 | B_2 | |
| A_3 | B_4 | | -------------------------
-------------------------
| A_3 | B_5 | |
-------------------------