簡體   English   中英

如何比較和合並三個熊貓數據框?

[英]How do I compare and merge three pandas Data Frames?

一點背景:

我有三個DOORS模塊(A,B和C),它們相互跟蹤,如下所示:

A --> B
A --> C

B --> C
B <-- A

C <-- A
C <-- B

通過導出當前模塊跟蹤到的其他模塊的ID,我可以輕松捕獲此“跟蹤”。 例如,A的導出表可能如下所示:

# A Table

|   A   |   B   |   C   |
=========================
|  A_1  |  B_1  |  C_1  |
-------------------------
|  A_2  |       |  C_3  |
-------------------------
|  A_3  |  B_4  |       |
|       |  B_5  |       |
-------------------------

雖然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 DataFrames中。 我想做兩件事:

  1. 識別丟失的痕跡:

    例如,表A的A_2跟蹤到C_3。 表B的B_2跟蹤到C_3。 但是,A_2和B_2 不會相互跟蹤。 這是丟失的痕跡。

  2. 將這些結果合並到一個數據框中,而不是三個。

我認為您任務中最困難的部分是定義缺少的鏈接。 您可能需要花費一些時間來評估各種可能的配置,因為它實際上並不像看起來那樣簡單(或者相反,它可能非常簡單)。

例如,如果表A包含A1,B1,B包含B1,C1,C包含A1,C1,那么這里有多少個丟失的鏈接? 還是根本沒有? 如果任何表包含A1,B1,C1,會有什么不同?

另一個示例:[A1,B1],[B1,C2],[B2,C2]。 這里有多少個缺失的鏈接?

您可以輕松做出許多其他事情,而不僅僅是回答示例。

而且,當您嚴格定義丟失的鏈接是什么時,您可以創建(也許很容易)在表中查找它們的算法,無論它們是如何結構的:在3個表中還是在一個表中,都可以通過聯接來形成,原始表的追加或並排連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM