Python 如何比较和合并三个数据帧?

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 | =========================

一点背景:

我有三个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_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的A_2有一个到C_3的跟踪。表B的B_2有到C_3的跟踪。然而,A_2和B_2不是相互追踪的。这是丢失的痕迹

  • 将这些结果合并到一个数据帧中,而不是三个


  • 我认为你任务中最困难的部分是定义缺失的环节是什么。您可能需要花一些时间来评估各种可能的配置,因为它并不像看上去那么简单(或者,相反,它可能非常简单)

    例如,如果表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  |       |       
    -------------------------