From bc38c411f7e4460f3abd7d831562c6436c48a068 Mon Sep 17 00:00:00 2001 From: Sam Firke Date: Thu, 21 Mar 2024 18:06:36 -0400 Subject: [PATCH] fix(utils): fix off-by-one error in how rolling window's min_periods truncates dataframe (#27388) --- superset/utils/pandas_postprocessing/rolling.py | 2 +- tests/unit_tests/pandas_postprocessing/test_rolling.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/superset/utils/pandas_postprocessing/rolling.py b/superset/utils/pandas_postprocessing/rolling.py index f93a047be989e..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:] + df_rolling = df_rolling[min_periods - 1 :] return df_rolling 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():