![](/img/trans.png)
[英]How do I merge two data frames in pandas on a common column which have similar values (but not the same)?
[英]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中。 我想做兩件事:
識別丟失的痕跡:
例如,表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個表中還是在一個表中,都可以通過聯接來形成,原始表的追加或並排連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.