diff --git a/saqc/lib/ts_operators.py b/saqc/lib/ts_operators.py index 417137e84d50f1ca3dab9c6506c9bbb60f92b5e1..54069a7baa48056d24a6bd5eb267afa6ca4afad9 100644 --- a/saqc/lib/ts_operators.py +++ b/saqc/lib/ts_operators.py @@ -276,7 +276,7 @@ def meanQC(data, max_nan_total=np.inf, max_nan_consec=np.inf): ) -def _interpolWrapper(x, order=2, method='time', downgrade_interpolation=False): +def _interpolWrapper(x, order=2, method="time", downgrade_interpolation=False): """ Function that automatically modifies the interpolation level or returns uninterpolated input data if the data configuration breaks the interpolation method at the selected degree. @@ -300,6 +300,7 @@ def _interpolWrapper(x, order=2, method='time', downgrade_interpolation=False): else: return x + def interpolateNANs( data, method, order=2, inter_limit=2, downgrade_interpolation=False ): @@ -360,9 +361,7 @@ def interpolateNANs( if method in ["linear", "time"]: # in the case of linear interpolation, not much can go wrong/break so this conditional branch has efficient # finish by just calling pandas interpolation routine to fill the gaps remaining in the data: - data.interpolate( - method=method, inplace=True, limit_area="inside" - ) + data.interpolate(method=method, inplace=True, limit_area="inside") else: # if the method that is interpolated with depends on not only the left and right border points of any gap, @@ -370,9 +369,14 @@ def interpolateNANs( # So we use the gap_mask to group the data into chunks and perform the interpolation on every chunk seperatly # with the .transform method of the grouper. gap_mask = (~gap_mask).cumsum()[data.index] - data = data.groupby(by=gap_mask).transform(_interpolWrapper, **{'order':order, - 'method':method, - 'downgrade_inerpolation':downgrade_interpolation}) + data = data.groupby(by=gap_mask).transform( + _interpolWrapper, + **{ + "order": order, + "method": method, + "downgrade_inerpolation": downgrade_interpolation, + }, + ) # finally reinsert the dropped data gaps data = data.reindex(pre_index) return data diff --git a/tests/lib/test_ts_operators.py b/tests/lib/test_ts_operators.py index 91b2659d32c2a98add6a4e48ff43ac2e9ec2496d..044ab72974d61e43f8f67d014c4b9976e0ad04c6 100644 --- a/tests/lib/test_ts_operators.py +++ b/tests/lib/test_ts_operators.py @@ -228,10 +228,8 @@ def test_rateOfChange(data, expected): ], ) def test_interpolatNANs(limit, data, expected): - got = interpolateNANs( - pd.Series(data), inter_limit=limit, method='linear' - ) + got = interpolateNANs(pd.Series(data), inter_limit=limit, method="linear") try: assert got.equals(pd.Series(expected, dtype=float)) except: - print('stop') \ No newline at end of file + print("stop")