From 1b157b22c756c7acedbe1574d773f79b8ccf90a3 Mon Sep 17 00:00:00 2001
From: Peter Luenenschloss <peter.luenenschloss@ufz.de>
Date: Mon, 22 Mar 2021 17:00:47 +0100
Subject: [PATCH] shift running

---
 saqc/funcs/resampling.py | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/saqc/funcs/resampling.py b/saqc/funcs/resampling.py
index f35d4b17c..482fdb02b 100644
--- a/saqc/funcs/resampling.py
+++ b/saqc/funcs/resampling.py
@@ -635,9 +635,9 @@ def _inverseAggregation(source_col, freq=None, method=None, target_flagscol=None
 
 
 
-def _inverseShift(target_flagscol, source_col=None, freq=None, method=None, drop_mask=None):
+def _inverseShift(source_col, freq=None, method=None, drop_mask=None, target_flagscol=None):
     target_flagscol_drops = target_flagscol[drop_mask]
-    target_flagscol.drop(drop_mask[drop_mask].index, inplace=True)
+    target_flagscol = target_flagscol.drop(drop_mask[drop_mask].index)
     flags_merged = pd.merge_asof(
         source_col,
         pd.Series(target_flagscol.index.values, index=target_flagscol.index, name="pre_index"),
@@ -647,17 +647,13 @@ def _inverseShift(target_flagscol, source_col=None, freq=None, method=None, drop
         direction=method,
     )
     flags_merged.dropna(subset=["pre_index"], inplace=True)
-    flags_merged = flags_merged.set_index(["pre_index"]).squeeze()
-
-    # write flags to target
-    replacement_mask = flags_merged > target_flagscol.loc[flags_merged.index]
-    target_flagscol.loc[replacement_mask[replacement_mask].index] = flags_merged.loc[replacement_mask]
+    target_flagscol = flags_merged.set_index(["pre_index"]).squeeze()
 
     # reinsert drops
-    target_flagscol = target_flagscol.reindex(target_flagscol.index.join(target_flagscol_drops.index, how="outer"))
-    target_flagscol.loc[target_flagscol_drops.index] = target_flagscol_drops.values
+    source_col = target_flagscol.reindex(target_flagscol.index.join(target_flagscol_drops.index, how="outer"))
+    source_col.loc[target_flagscol_drops.index] = target_flagscol_drops.values
 
-    return target_flagscol
+    return source_col
 
 
 @register(masking='none', module="resampling")
-- 
GitLab