2016-02-03 86 views
0

背景的一點點:如何比較和合並三個熊貓數據框?

我已經三個門模塊(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. 將這些結果合併爲一個數據框而不是三個。

+0

我不太確定,可能不僅僅是我,這些幀代表什麼以及缺少哪些值(A - > C和B - > C,但缺少A - > B)並將這些值合併到一個table_中。你能否詳細說明一下? –

+0

這是一個複雜的問題,我試圖儘可能簡化。每個表格代表每個模塊對象的ID。例如,表A的第一行有A_1,B_1,C_1。 A_1是表格A行1的ID .B_1指向B表格ID。 C_1指向C表ID。現在看看錶A和B的第二行。它們都指向表C,但是不指向對方。這是一個缺失的鏈接。這有幫助嗎? – KronoS

+0

@YannisP。我已經用更多的細節更新了這個問題。希望這有助於更多地解釋問題。 – KronoS

回答

0

我認爲你的任務中最困難的部分是定義什麼是缺失的鏈接。您可能需要投入一些時間來評估各種可能的配置,因爲它看起來並不那麼簡單(或者相反,它可能非常簡單)。例如,如果表A包含A1,B1,B包含B1,C1,並且C包含A1,C1,那麼這裏有多少缺失鏈接?或根本沒有?如果任何表格包含A1,B1,C1,它會有什麼不同?

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

你可以很容易地讓很多其他人不那麼簡單地回答例子。

當你嚴格定義缺失的鏈接是什麼時,你可以創建(也許很容易)在你的表中找到它們的算法,不管它們是如何構造的:在3個表格中,或者在一個表格中,可以是由原始表格形成連接,附加或並排連接。