From 6398c09f5454ed3e6cafb8b3b171d4f53893c312 Mon Sep 17 00:00:00 2001
From: dmt <>
Date: Thu, 24 Oct 2019 21:50:07 +0200
Subject: [PATCH] Provide capability to find overlapping rows and fuse
 learnblocks.

---
 cml/ports/source_adapters.py | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/cml/ports/source_adapters.py b/cml/ports/source_adapters.py
index 08fc976..c949337 100644
--- a/cml/ports/source_adapters.py
+++ b/cml/ports/source_adapters.py
@@ -45,6 +45,7 @@ class PandasBlock:
         self.__data_block = data_block
         self.relatives = relatives
         self.n_cluster = None
+        self.purpose = None
 
     def __str__(self):
         return str(self.__data_block)
@@ -82,6 +83,17 @@ class PandasBlock:
         data_frame["Z"] = labels
         return PandasBlock(data_frame, self.relatives)
 
+    def overlapping_rows(self, block):
+        overlapping = self.__data_block[self.__data_block.isin(block)].dropna(
+            axis=0, how="all"
+        )
+        return self.new_block_from_rows_index(overlapping.indexes)
+
+    def fusion(self, block):
+        return self.new_block_from_rows_index(
+            self.indexes+block.indexes
+        )
+
     @property
     def min_timestamp(self):
         return min(self.__data_block["T"])
-- 
GitLab