From b5662c80bf8e991b5cd4d3dfd68d7a4b4845a394 Mon Sep 17 00:00:00 2001 From: Sam Firke Date: Mon, 4 Mar 2024 19:32:52 +0000 Subject: [PATCH 1/3] don't truncate Nth period for min_periods = N --- superset/utils/pandas_postprocessing/rolling.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset/utils/pandas_postprocessing/rolling.py b/superset/utils/pandas_postprocessing/rolling.py index f93a047be989e..9a368b803d18c 100644 --- a/superset/utils/pandas_postprocessing/rolling.py +++ b/superset/utils/pandas_postprocessing/rolling.py @@ -97,5 +97,5 @@ def rolling( # pylint: disable=too-many-arguments df_rolling = _append_columns(df, df_rolling, columns) if min_periods: - df_rolling = df_rolling[min_periods:] + df_rolling = df_rolling[min_periods-1:] return df_rolling From 4aa8d60f57dc340c7c709db3c33a38bade469b34 Mon Sep 17 00:00:00 2001 From: Sam Firke Date: Mon, 4 Mar 2024 20:42:39 +0000 Subject: [PATCH 2/3] rewrite test of min_periods --- tests/unit_tests/pandas_postprocessing/test_rolling.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unit_tests/pandas_postprocessing/test_rolling.py b/tests/unit_tests/pandas_postprocessing/test_rolling.py index 1859b0c2c7a1f..cd162fb2d7b38 100644 --- a/tests/unit_tests/pandas_postprocessing/test_rolling.py +++ b/tests/unit_tests/pandas_postprocessing/test_rolling.py @@ -107,7 +107,7 @@ def test_rolling(): ) -def test_rolling_should_empty_df(): +def test_rolling_min_periods_trims_correctly(): pivot_df = pp.pivot( df=single_metric_df, index=["dttm"], @@ -121,7 +121,7 @@ def test_rolling_should_empty_df(): min_periods=2, columns={"sum_metric": "sum_metric"}, ) - assert rolling_df.empty is True + assert len(rolling_df) == 1 def test_rolling_after_pivot_with_single_metric(): From a30b7ce8b7614dbb98d9966262a30386c9362fb7 Mon Sep 17 00:00:00 2001 From: Sam Firke Date: Mon, 4 Mar 2024 20:53:23 +0000 Subject: [PATCH 3/3] fix linting --- superset/utils/pandas_postprocessing/rolling.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset/utils/pandas_postprocessing/rolling.py b/superset/utils/pandas_postprocessing/rolling.py index 9a368b803d18c..775acc7aa6d4c 100644 --- a/superset/utils/pandas_postprocessing/rolling.py +++ b/superset/utils/pandas_postprocessing/rolling.py @@ -97,5 +97,5 @@ def rolling( # pylint: disable=too-many-arguments df_rolling = _append_columns(df, df_rolling, columns) if min_periods: - df_rolling = df_rolling[min_periods-1:] + df_rolling = df_rolling[min_periods - 1 :] return df_rolling