From f94146552ae3aaeaf9a39adc505c0b3fdcde584b Mon Sep 17 00:00:00 2001 From: Luke Manley Date: Fri, 17 Nov 2023 21:33:34 -0500 Subject: [PATCH 1/3] loop inside test --- pandas/tests/reshape/test_pivot.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/pandas/tests/reshape/test_pivot.py b/pandas/tests/reshape/test_pivot.py index aecdf0a9c6975..00c8ca02907d6 100644 --- a/pandas/tests/reshape/test_pivot.py +++ b/pandas/tests/reshape/test_pivot.py @@ -1712,8 +1712,7 @@ def test_pivot_dtaccessor(self): ) tm.assert_frame_equal(result, expected) - @pytest.mark.parametrize("i", range(1, 367)) - def test_daily(self, i): + def test_daily(self): rng = date_range("1/1/2000", "12/31/2004", freq="D") ts = Series(np.random.default_rng(2).standard_normal(len(rng)), index=rng) @@ -1724,12 +1723,12 @@ def test_daily(self, i): doy = np.asarray(ts.index.dayofyear) - subset = ts[doy == i] - subset.index = subset.index.year - - result = annual[i].dropna() - tm.assert_series_equal(result, subset, check_names=False) - assert result.name == i + for i in range(1, 367): + subset = ts[doy == i] + subset.index = subset.index.year + result = annual[i].dropna() + tm.assert_series_equal(result, subset, check_names=False) + assert result.name == i @pytest.mark.parametrize("i", range(1, 13)) def test_monthly(self, i): From 0af0b9b2692686ce36e060bb65ddfc34e4461405 Mon Sep 17 00:00:00 2001 From: Luke Manley Date: Sat, 18 Nov 2023 06:57:10 -0500 Subject: [PATCH 2/3] construct expected frame --- pandas/tests/reshape/test_pivot.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pandas/tests/reshape/test_pivot.py b/pandas/tests/reshape/test_pivot.py index 00c8ca02907d6..bf2a86471028b 100644 --- a/pandas/tests/reshape/test_pivot.py +++ b/pandas/tests/reshape/test_pivot.py @@ -1714,21 +1714,21 @@ def test_pivot_dtaccessor(self): def test_daily(self): rng = date_range("1/1/2000", "12/31/2004", freq="D") - ts = Series(np.random.default_rng(2).standard_normal(len(rng)), index=rng) + ts = Series(np.arange(len(rng)), index=rng) - annual = pivot_table( + result = pivot_table( DataFrame(ts), index=ts.index.year, columns=ts.index.dayofyear ) - annual.columns = annual.columns.droplevel(0) + result.columns = result.columns.droplevel(0) doy = np.asarray(ts.index.dayofyear) - for i in range(1, 367): - subset = ts[doy == i] - subset.index = subset.index.year - result = annual[i].dropna() - tm.assert_series_equal(result, subset, check_names=False) - assert result.name == i + expected = {} + for y in ts.index.year.unique().values: + mask = ts.index.year == y + expected[y] = Series(ts.values[mask], index=doy[mask]) + expected = DataFrame(expected).T + tm.assert_frame_equal(result, expected) @pytest.mark.parametrize("i", range(1, 13)) def test_monthly(self, i): From 2392fba76e81a39353b345a259740457f0ee3157 Mon Sep 17 00:00:00 2001 From: Luke Manley Date: Sat, 18 Nov 2023 07:05:08 -0500 Subject: [PATCH 3/3] update monthly test as well --- pandas/tests/reshape/test_pivot.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pandas/tests/reshape/test_pivot.py b/pandas/tests/reshape/test_pivot.py index bf2a86471028b..4807840aab1c3 100644 --- a/pandas/tests/reshape/test_pivot.py +++ b/pandas/tests/reshape/test_pivot.py @@ -1727,23 +1727,23 @@ def test_daily(self): for y in ts.index.year.unique().values: mask = ts.index.year == y expected[y] = Series(ts.values[mask], index=doy[mask]) - expected = DataFrame(expected).T + expected = DataFrame(expected, dtype=float).T tm.assert_frame_equal(result, expected) - @pytest.mark.parametrize("i", range(1, 13)) - def test_monthly(self, i): + def test_monthly(self): rng = date_range("1/1/2000", "12/31/2004", freq="ME") - ts = Series(np.random.default_rng(2).standard_normal(len(rng)), index=rng) + ts = Series(np.arange(len(rng)), index=rng) - annual = pivot_table(DataFrame(ts), index=ts.index.year, columns=ts.index.month) - annual.columns = annual.columns.droplevel(0) + result = pivot_table(DataFrame(ts), index=ts.index.year, columns=ts.index.month) + result.columns = result.columns.droplevel(0) - month = ts.index.month - subset = ts[month == i] - subset.index = subset.index.year - result = annual[i].dropna() - tm.assert_series_equal(result, subset, check_names=False) - assert result.name == i + month = np.asarray(ts.index.month) + expected = {} + for y in ts.index.year.unique().values: + mask = ts.index.year == y + expected[y] = Series(ts.values[mask], index=month[mask]) + expected = DataFrame(expected, dtype=float).T + tm.assert_frame_equal(result, expected) def test_pivot_table_with_iterator_values(self, data): # GH 12017