From 39dd1ce0e6d4a9efac49c8817f4a017b734a6fae Mon Sep 17 00:00:00 2001 From: David Schaefer <david.schaefer@ufz.de> Date: Fri, 14 Aug 2020 10:25:13 +0200 Subject: [PATCH] flagger initialization perf improvements through a reduction of type castings --- saqc/flagger/baseflagger.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/saqc/flagger/baseflagger.py b/saqc/flagger/baseflagger.py index dd3016de9..be0b547ea 100644 --- a/saqc/flagger/baseflagger.py +++ b/saqc/flagger/baseflagger.py @@ -64,14 +64,16 @@ class BaseFlagger(ABC): if data is not None: if not isinstance(data, diosT): data = dios.DictOfSeries(data) - flags = data.copy() - flags[:] = self.UNFLAGGED + + flags = dios.DictOfSeries(columns=data.columns) + for c in flags.columns: + flags[c] = pd.Series(self.UNFLAGGED, index=data[c].index) + flags = flags.astype(self.dtype) else: if not isinstance(data, diosT): flags = dios.DictOfSeries(flags) - newflagger = self.copy() - newflagger._flags = flags.astype(self.dtype) + newflagger = self.copy(flags=flags) return newflagger def rename(self, field: str, new_name: str): -- GitLab