From 3b39ce5b9c4aed02b02a15d939444885618d31ab Mon Sep 17 00:00:00 2001 From: Sheogorath27 Date: Wed, 25 Aug 2021 17:24:51 +0530 Subject: [PATCH 1/3] TST: categorical reindex with added categories --- .../tests/indexes/categorical/test_reindex.py | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/pandas/tests/indexes/categorical/test_reindex.py b/pandas/tests/indexes/categorical/test_reindex.py index 2e8ad0fbd60cc..249e0e4f78006 100644 --- a/pandas/tests/indexes/categorical/test_reindex.py +++ b/pandas/tests/indexes/categorical/test_reindex.py @@ -6,6 +6,7 @@ CategoricalIndex, DataFrame, Index, + Interval, Series, ) import pandas._testing as tm @@ -103,3 +104,24 @@ def test_reindex_not_category(self, index_df, index_res, index_exp): result = df.reindex(index=index_res) expected = DataFrame(index=index_exp) tm.assert_frame_equal(result, expected) + + def test_reindex_categorical_added_category(self): + ci = CategoricalIndex( + [Interval(0, 1, closed="right"), Interval(1, 2, closed="right")], + ordered=True, + ) + + ci_add = CategoricalIndex( + [ + Interval(0, 1, closed="right"), + Interval(1, 2, closed="right"), + Interval(2, 3, closed="right"), + Interval(3, 4, closed="right"), + ], + ordered=True, + ) + + result, _ = ci.reindex(ci_add) + expected = ci_add + + tm.assert_index_equal(expected, result) From 036b81af710140039f3d8828c7a78a30d586929c Mon Sep 17 00:00:00 2001 From: Sheogorath27 Date: Thu, 26 Aug 2021 07:41:42 +0530 Subject: [PATCH 2/3] Update test_reindex.py --- pandas/tests/indexes/categorical/test_reindex.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/pandas/tests/indexes/categorical/test_reindex.py b/pandas/tests/indexes/categorical/test_reindex.py index 249e0e4f78006..765cf0d7b36d9 100644 --- a/pandas/tests/indexes/categorical/test_reindex.py +++ b/pandas/tests/indexes/categorical/test_reindex.py @@ -110,7 +110,6 @@ def test_reindex_categorical_added_category(self): [Interval(0, 1, closed="right"), Interval(1, 2, closed="right")], ordered=True, ) - ci_add = CategoricalIndex( [ Interval(0, 1, closed="right"), @@ -120,8 +119,6 @@ def test_reindex_categorical_added_category(self): ], ordered=True, ) - result, _ = ci.reindex(ci_add) expected = ci_add - tm.assert_index_equal(expected, result) From ba944d6a87554f18b37f01a09a780e4e52f1139e Mon Sep 17 00:00:00 2001 From: Sheogorath27 Date: Sat, 28 Aug 2021 23:02:37 +0530 Subject: [PATCH 3/3] TST: Dataframe construct from series. --- pandas/tests/frame/test_constructors.py | 27 +++++++++++++++++++ .../tests/indexes/categorical/test_reindex.py | 1 + 2 files changed, 28 insertions(+) diff --git a/pandas/tests/frame/test_constructors.py b/pandas/tests/frame/test_constructors.py index 3c1614ac9f153..729cfb8a5667e 100644 --- a/pandas/tests/frame/test_constructors.py +++ b/pandas/tests/frame/test_constructors.py @@ -43,6 +43,7 @@ Series, Timedelta, Timestamp, + cut, date_range, isna, ) @@ -2353,6 +2354,32 @@ def test_construct_with_two_categoricalindex_series(self): ) tm.assert_frame_equal(result, expected) + def test_constructor_series_nonexact_categoricalindex(self): + # GH 42424 + ser = Series(range(0, 100)) + ser1 = cut(ser, 10).value_counts().head(5) + ser2 = cut(ser, 10).value_counts().tail(5) + result = DataFrame({"1": ser1, "2": ser2}) + index = CategoricalIndex( + [ + Interval(-0.099, 9.9, closed="right"), + Interval(9.9, 19.8, closed="right"), + Interval(19.8, 29.7, closed="right"), + Interval(29.7, 39.6, closed="right"), + Interval(39.6, 49.5, closed="right"), + Interval(49.5, 59.4, closed="right"), + Interval(59.4, 69.3, closed="right"), + Interval(69.3, 79.2, closed="right"), + Interval(79.2, 89.1, closed="right"), + Interval(89.1, 99, closed="right"), + ], + ordered=True, + ) + expected = DataFrame( + {"1": [10] * 5 + [np.nan] * 5, "2": [np.nan] * 5 + [10] * 5}, index=index + ) + tm.assert_frame_equal(expected, result) + def test_from_M8_structured(self): dates = [(datetime(2012, 9, 9, 0, 0), datetime(2012, 9, 8, 15, 10))] arr = np.array(dates, dtype=[("Date", "M8[us]"), ("Forecasting", "M8[us]")]) diff --git a/pandas/tests/indexes/categorical/test_reindex.py b/pandas/tests/indexes/categorical/test_reindex.py index 765cf0d7b36d9..0b81d4f88eaf8 100644 --- a/pandas/tests/indexes/categorical/test_reindex.py +++ b/pandas/tests/indexes/categorical/test_reindex.py @@ -106,6 +106,7 @@ def test_reindex_not_category(self, index_df, index_res, index_exp): tm.assert_frame_equal(result, expected) def test_reindex_categorical_added_category(self): + # GH 42424 ci = CategoricalIndex( [Interval(0, 1, closed="right"), Interval(1, 2, closed="right")], ordered=True,