From 2ed8163c3b11b476f107fc735a65ffe75017be3b Mon Sep 17 00:00:00 2001 From: vampypandya Date: Mon, 25 May 2020 08:22:50 +0000 Subject: [PATCH 1/4] Added test for Category isin --- pandas/tests/frame/methods/test_isin.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pandas/tests/frame/methods/test_isin.py b/pandas/tests/frame/methods/test_isin.py index 6307738021f68..1ab662c1dd7eb 100644 --- a/pandas/tests/frame/methods/test_isin.py +++ b/pandas/tests/frame/methods/test_isin.py @@ -189,3 +189,17 @@ def test_isin_empty_datetimelike(self): tm.assert_frame_equal(result, expected) result = df1_td.isin(df3) tm.assert_frame_equal(result, expected) + + def test_isin_against_categoryDataframe(self): + # GH#34256 + df1 = pd.DataFrame.from_dict({'a': [1, 2, 3], 'b': [4, 5, 6]}) + df2 = pd.DataFrame({'a': [1, 2, 3]}, dtype='category') + df3 = pd.Series([1, 2, 3]).astype('category') + + expected1 = DataFrame({"a": [True, True, True], "b": [False, False, False]}) + expected2 = DataFrame({"a": [True, True, True], "b": [False, False, False]}) + result1 = df1.isin(df2) + tm.assert_frame_equal(result1, expected1) + + result2 = df1.isin(df3) + tm.assert_frame_equal(result2, expected2) From f3c7e186e64f04b362b695d9cd27ee81bc841611 Mon Sep 17 00:00:00 2001 From: vampypandya Date: Mon, 25 May 2020 08:31:29 +0000 Subject: [PATCH 2/4] Added test for Category isin --- pandas/tests/frame/methods/test_isin.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pandas/tests/frame/methods/test_isin.py b/pandas/tests/frame/methods/test_isin.py index 1ab662c1dd7eb..583647a5efafe 100644 --- a/pandas/tests/frame/methods/test_isin.py +++ b/pandas/tests/frame/methods/test_isin.py @@ -192,9 +192,9 @@ def test_isin_empty_datetimelike(self): def test_isin_against_categoryDataframe(self): # GH#34256 - df1 = pd.DataFrame.from_dict({'a': [1, 2, 3], 'b': [4, 5, 6]}) - df2 = pd.DataFrame({'a': [1, 2, 3]}, dtype='category') - df3 = pd.Series([1, 2, 3]).astype('category') + df1 = pd.DataFrame.from_dict({"a": [1, 2, 3], "b": [4, 5, 6]}) + df2 = pd.DataFrame({"a": [1, 2, 3]}, dtype="category") + df3 = pd.Series([1, 2, 3]).astype("category") expected1 = DataFrame({"a": [True, True, True], "b": [False, False, False]}) expected2 = DataFrame({"a": [True, True, True], "b": [False, False, False]}) From 84792c3208095be8343406a4793bb63bc54e219c Mon Sep 17 00:00:00 2001 From: vampypandya Date: Mon, 25 May 2020 18:01:57 +0000 Subject: [PATCH 3/4] Added test for Category isin with paramerize --- pandas/tests/frame/methods/test_isin.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/pandas/tests/frame/methods/test_isin.py b/pandas/tests/frame/methods/test_isin.py index 583647a5efafe..c2328e19a5bc3 100644 --- a/pandas/tests/frame/methods/test_isin.py +++ b/pandas/tests/frame/methods/test_isin.py @@ -190,16 +190,17 @@ def test_isin_empty_datetimelike(self): result = df1_td.isin(df3) tm.assert_frame_equal(result, expected) - def test_isin_against_categoryDataframe(self): + @pytest.mark.parametrize( + "category", + [ + pd.DataFrame({"a": [1, 2, 3]}, dtype="category"), + pd.Series([1, 2, 3]).astype("category"), + ], + ) + def test_isin_category_frame(self, category): # GH#34256 - df1 = pd.DataFrame.from_dict({"a": [1, 2, 3], "b": [4, 5, 6]}) - df2 = pd.DataFrame({"a": [1, 2, 3]}, dtype="category") - df3 = pd.Series([1, 2, 3]).astype("category") + df = pd.DataFrame.from_dict({"a": [1, 2, 3], "b": [4, 5, 6]}) + expected = DataFrame({"a": [True, True, True], "b": [False, False, False]}) - expected1 = DataFrame({"a": [True, True, True], "b": [False, False, False]}) - expected2 = DataFrame({"a": [True, True, True], "b": [False, False, False]}) - result1 = df1.isin(df2) - tm.assert_frame_equal(result1, expected1) - - result2 = df1.isin(df3) - tm.assert_frame_equal(result2, expected2) + result = df.isin(category) + tm.assert_frame_equal(result, expected) From b99a6eb5cbe22f7384fda86943ab51138686a7d2 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Tue, 7 Jul 2020 15:04:28 -0500 Subject: [PATCH 4/4] Apply suggestions from code review --- pandas/tests/frame/methods/test_isin.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pandas/tests/frame/methods/test_isin.py b/pandas/tests/frame/methods/test_isin.py index c2328e19a5bc3..cae5e21ee1125 100644 --- a/pandas/tests/frame/methods/test_isin.py +++ b/pandas/tests/frame/methods/test_isin.py @@ -191,16 +191,16 @@ def test_isin_empty_datetimelike(self): tm.assert_frame_equal(result, expected) @pytest.mark.parametrize( - "category", + "values", [ pd.DataFrame({"a": [1, 2, 3]}, dtype="category"), - pd.Series([1, 2, 3]).astype("category"), + pd.Series([1, 2, 3], dtype="category"), ], ) - def test_isin_category_frame(self, category): + def test_isin_category_frame(self, values): # GH#34256 - df = pd.DataFrame.from_dict({"a": [1, 2, 3], "b": [4, 5, 6]}) + df = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]}) expected = DataFrame({"a": [True, True, True], "b": [False, False, False]}) - result = df.isin(category) + result = df.isin(values) tm.assert_frame_equal(result, expected)