From 5c0a09558ca361d30563f63a5d204f0825ede699 Mon Sep 17 00:00:00 2001 From: r-toroxel Date: Fri, 3 Jul 2020 13:47:17 +0200 Subject: [PATCH 1/8] TST add test case to drop_duplicates for inplace=True --- pandas/tests/frame/methods/test_drop_duplicates.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pandas/tests/frame/methods/test_drop_duplicates.py b/pandas/tests/frame/methods/test_drop_duplicates.py index 7c6391140e2bb..983696587c5e1 100644 --- a/pandas/tests/frame/methods/test_drop_duplicates.py +++ b/pandas/tests/frame/methods/test_drop_duplicates.py @@ -425,3 +425,8 @@ def test_drop_duplicates_null_in_object_column(nulls_fixture): df = DataFrame([[1, nulls_fixture], [2, "a"]], dtype=object) result = df.drop_duplicates() tm.assert_frame_equal(result, df) + +def test_drop_duplicates_inplace(): + df = DataFrame({"a": [1,2,3], "b": [1,2,4], "c": [1,6,5]}) + result = df.drop_duplicates(inplace=True) + assert result is None From 6b940bb782995e0306f339c2ae797f983e6a9822 Mon Sep 17 00:00:00 2001 From: r-toroxel Date: Sat, 4 Jul 2020 14:22:54 +0200 Subject: [PATCH 2/8] CLN PEP-8 --- pandas/tests/frame/methods/test_drop_duplicates.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pandas/tests/frame/methods/test_drop_duplicates.py b/pandas/tests/frame/methods/test_drop_duplicates.py index 983696587c5e1..7104f932f8300 100644 --- a/pandas/tests/frame/methods/test_drop_duplicates.py +++ b/pandas/tests/frame/methods/test_drop_duplicates.py @@ -426,7 +426,8 @@ def test_drop_duplicates_null_in_object_column(nulls_fixture): result = df.drop_duplicates() tm.assert_frame_equal(result, df) -def test_drop_duplicates_inplace(): - df = DataFrame({"a": [1,2,3], "b": [1,2,4], "c": [1,6,5]}) + +def test_drop_duplicates_inplace_result(): + df = DataFrame({"a": [1, 2, 3], "b": [1, 2, 4], "c": [1, 6, 5]}) result = df.drop_duplicates(inplace=True) assert result is None From 4b8679c1b3fc9319f46bcbd6031e76b0d0b73d1e Mon Sep 17 00:00:00 2001 From: r-toroxel Date: Tue, 7 Jul 2020 19:41:56 +0200 Subject: [PATCH 3/8] TST move to existing test --- .../frame/methods/test_drop_duplicates.py | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/pandas/tests/frame/methods/test_drop_duplicates.py b/pandas/tests/frame/methods/test_drop_duplicates.py index 7104f932f8300..64fb1ce7ab6b2 100644 --- a/pandas/tests/frame/methods/test_drop_duplicates.py +++ b/pandas/tests/frame/methods/test_drop_duplicates.py @@ -333,64 +333,73 @@ def test_drop_duplicates_inplace(): ) # single column df = orig.copy() - df.drop_duplicates("A", inplace=True) + return_value = df.drop_duplicates("A", inplace=True) expected = orig[:2] result = df tm.assert_frame_equal(result, expected) + assert(return_value is None) df = orig.copy() - df.drop_duplicates("A", keep="last", inplace=True) + return_value = df.drop_duplicates("A", keep="last", inplace=True) expected = orig.loc[[6, 7]] result = df tm.assert_frame_equal(result, expected) + assert (return_value is None) df = orig.copy() - df.drop_duplicates("A", keep=False, inplace=True) + return_value = df.drop_duplicates("A", keep=False, inplace=True) expected = orig.loc[[]] result = df tm.assert_frame_equal(result, expected) assert len(df) == 0 + assert (return_value is None) # multi column df = orig.copy() - df.drop_duplicates(["A", "B"], inplace=True) + return_value = df.drop_duplicates(["A", "B"], inplace=True) expected = orig.loc[[0, 1, 2, 3]] result = df tm.assert_frame_equal(result, expected) + assert (return_value is None) df = orig.copy() - df.drop_duplicates(["A", "B"], keep="last", inplace=True) + return_value = df.drop_duplicates(["A", "B"], keep="last", inplace=True) expected = orig.loc[[0, 5, 6, 7]] result = df tm.assert_frame_equal(result, expected) + assert (return_value is None) df = orig.copy() - df.drop_duplicates(["A", "B"], keep=False, inplace=True) + return_value = df.drop_duplicates(["A", "B"], keep=False, inplace=True) expected = orig.loc[[0]] result = df tm.assert_frame_equal(result, expected) + assert (return_value is None) # consider everything orig2 = orig.loc[:, ["A", "B", "C"]].copy() df2 = orig2.copy() - df2.drop_duplicates(inplace=True) + return_value = df2.drop_duplicates(inplace=True) # in this case only expected = orig2.drop_duplicates(["A", "B"]) result = df2 tm.assert_frame_equal(result, expected) + assert (return_value is None) df2 = orig2.copy() - df2.drop_duplicates(keep="last", inplace=True) + return_value = df2.drop_duplicates(keep="last", inplace=True) expected = orig2.drop_duplicates(["A", "B"], keep="last") result = df2 tm.assert_frame_equal(result, expected) + assert (return_value is None) df2 = orig2.copy() - df2.drop_duplicates(keep=False, inplace=True) + return_value = df2.drop_duplicates(keep=False, inplace=True) expected = orig2.drop_duplicates(["A", "B"], keep=False) result = df2 tm.assert_frame_equal(result, expected) + assert (return_value is None) @pytest.mark.parametrize("inplace", [True, False]) @@ -425,9 +434,3 @@ def test_drop_duplicates_null_in_object_column(nulls_fixture): df = DataFrame([[1, nulls_fixture], [2, "a"]], dtype=object) result = df.drop_duplicates() tm.assert_frame_equal(result, df) - - -def test_drop_duplicates_inplace_result(): - df = DataFrame({"a": [1, 2, 3], "b": [1, 2, 4], "c": [1, 6, 5]}) - result = df.drop_duplicates(inplace=True) - assert result is None From cb2ab5e3ab2f0b3b755a467b312b610659ec46c8 Mon Sep 17 00:00:00 2001 From: r-toroxel Date: Tue, 7 Jul 2020 19:55:19 +0200 Subject: [PATCH 4/8] CLN remove parenthesis --- .../frame/methods/test_drop_duplicates.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pandas/tests/frame/methods/test_drop_duplicates.py b/pandas/tests/frame/methods/test_drop_duplicates.py index 64fb1ce7ab6b2..cebec215a0d9d 100644 --- a/pandas/tests/frame/methods/test_drop_duplicates.py +++ b/pandas/tests/frame/methods/test_drop_duplicates.py @@ -337,14 +337,14 @@ def test_drop_duplicates_inplace(): expected = orig[:2] result = df tm.assert_frame_equal(result, expected) - assert(return_value is None) + assert return_value is None df = orig.copy() return_value = df.drop_duplicates("A", keep="last", inplace=True) expected = orig.loc[[6, 7]] result = df tm.assert_frame_equal(result, expected) - assert (return_value is None) + assert return_value is None df = orig.copy() return_value = df.drop_duplicates("A", keep=False, inplace=True) @@ -352,7 +352,7 @@ def test_drop_duplicates_inplace(): result = df tm.assert_frame_equal(result, expected) assert len(df) == 0 - assert (return_value is None) + assert return_value is None # multi column df = orig.copy() @@ -360,21 +360,21 @@ def test_drop_duplicates_inplace(): expected = orig.loc[[0, 1, 2, 3]] result = df tm.assert_frame_equal(result, expected) - assert (return_value is None) + assert return_value is None df = orig.copy() return_value = df.drop_duplicates(["A", "B"], keep="last", inplace=True) expected = orig.loc[[0, 5, 6, 7]] result = df tm.assert_frame_equal(result, expected) - assert (return_value is None) + assert return_value is None df = orig.copy() return_value = df.drop_duplicates(["A", "B"], keep=False, inplace=True) expected = orig.loc[[0]] result = df tm.assert_frame_equal(result, expected) - assert (return_value is None) + assert return_value is None # consider everything orig2 = orig.loc[:, ["A", "B", "C"]].copy() @@ -385,21 +385,21 @@ def test_drop_duplicates_inplace(): expected = orig2.drop_duplicates(["A", "B"]) result = df2 tm.assert_frame_equal(result, expected) - assert (return_value is None) + assert return_value is None df2 = orig2.copy() return_value = df2.drop_duplicates(keep="last", inplace=True) expected = orig2.drop_duplicates(["A", "B"], keep="last") result = df2 tm.assert_frame_equal(result, expected) - assert (return_value is None) + assert return_value is None df2 = orig2.copy() return_value = df2.drop_duplicates(keep=False, inplace=True) expected = orig2.drop_duplicates(["A", "B"], keep=False) result = df2 tm.assert_frame_equal(result, expected) - assert (return_value is None) + assert return_value is None @pytest.mark.parametrize("inplace", [True, False]) From 23691419be82bf0dfa1391cbc03716cf1e77de76 Mon Sep 17 00:00:00 2001 From: r-toroxel Date: Thu, 9 Jul 2020 11:09:00 +0200 Subject: [PATCH 5/8] TST test from_tuple corner cases --- pandas/tests/frame/test_constructors.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/pandas/tests/frame/test_constructors.py b/pandas/tests/frame/test_constructors.py index dba243f1a339a..f90024cccc0a4 100644 --- a/pandas/tests/frame/test_constructors.py +++ b/pandas/tests/frame/test_constructors.py @@ -1168,6 +1168,11 @@ def test_constructor_list_of_odicts(self): OrderedDict([["b", 3], ["c", 4], ["d", 6]]), ] + result = DataFrame([data[0]]) + expected = DataFrame.from_dict( + dict(zip([0], [data[0]])), orient="index") + tm.assert_frame_equal(result, expected.reindex(result.index)) + result = DataFrame(data) expected = DataFrame.from_dict( dict(zip(range(len(data)), data)), orient="index" @@ -1493,16 +1498,17 @@ def test_from_dict_columns_parameter(self): ) @pytest.mark.parametrize( - "data_dict, keys", + "data_dict, keys, orient", [ - ([{("a",): 1}, {("a",): 2}], [("a",)]), - ([OrderedDict([(("a",), 1), (("b",), 2)])], [("a",), ("b",)]), - ([{("a", "b"): 1}], [("a", "b")]), + ({}, [], "index"), + ([{("a",): 1}, {("a",): 2}], [("a",)], "columns"), + ([OrderedDict([(("a",), 1), (("b",), 2)])], [("a",), ("b",)], "columns"), + ([{("a", "b"): 1}], [("a", "b")], "columns"), ], ) - def test_constructor_from_dict_tuples(self, data_dict, keys): + def test_constructor_from_dict_tuples(self, data_dict, keys, orient): # GH 16769 - df = DataFrame.from_dict(data_dict) + df = DataFrame.from_dict(data_dict, orient) result = df.columns expected = Index(keys, dtype="object", tupleize_cols=False) From 04a86a794073dd780de14d88a131d5a7b39f161e Mon Sep 17 00:00:00 2001 From: r-toroxel Date: Fri, 10 Jul 2020 18:15:55 +0200 Subject: [PATCH 6/8] add comment --- pandas/tests/frame/test_constructors.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pandas/tests/frame/test_constructors.py b/pandas/tests/frame/test_constructors.py index df2b9f291708f..f8a2f0db37885 100644 --- a/pandas/tests/frame/test_constructors.py +++ b/pandas/tests/frame/test_constructors.py @@ -1168,6 +1168,7 @@ def test_constructor_list_of_odicts(self): OrderedDict([["b", 3], ["c", 4], ["d", 6]]), ] + # single row dataframe result = DataFrame([data[0]]) expected = DataFrame.from_dict( dict(zip([0], [data[0]])), orient="index") From c1cf452ae0b79c22e64c82c357090d6cbe83dfb1 Mon Sep 17 00:00:00 2001 From: r-toroxel Date: Sat, 11 Jul 2020 11:46:18 +0200 Subject: [PATCH 7/8] CLN run black formatting --- pandas/tests/frame/test_constructors.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pandas/tests/frame/test_constructors.py b/pandas/tests/frame/test_constructors.py index f8a2f0db37885..09eef6fc5a8eb 100644 --- a/pandas/tests/frame/test_constructors.py +++ b/pandas/tests/frame/test_constructors.py @@ -1170,8 +1170,7 @@ def test_constructor_list_of_odicts(self): # single row dataframe result = DataFrame([data[0]]) - expected = DataFrame.from_dict( - dict(zip([0], [data[0]])), orient="index") + expected = DataFrame.from_dict(dict(zip([0], [data[0]])), orient="index") tm.assert_frame_equal(result, expected.reindex(result.index)) result = DataFrame(data) From 40faa87d916ca7af1e97029ab362a0742158e015 Mon Sep 17 00:00:00 2001 From: r-toroxel Date: Sat, 11 Jul 2020 11:55:33 +0200 Subject: [PATCH 8/8] CLN refactor case as separate test --- pandas/tests/frame/test_constructors.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pandas/tests/frame/test_constructors.py b/pandas/tests/frame/test_constructors.py index 09eef6fc5a8eb..ef5c2d539f912 100644 --- a/pandas/tests/frame/test_constructors.py +++ b/pandas/tests/frame/test_constructors.py @@ -1168,11 +1168,6 @@ def test_constructor_list_of_odicts(self): OrderedDict([["b", 3], ["c", 4], ["d", 6]]), ] - # single row dataframe - result = DataFrame([data[0]]) - expected = DataFrame.from_dict(dict(zip([0], [data[0]])), orient="index") - tm.assert_frame_equal(result, expected.reindex(result.index)) - result = DataFrame(data) expected = DataFrame.from_dict( dict(zip(range(len(data)), data)), orient="index" @@ -1183,6 +1178,13 @@ def test_constructor_list_of_odicts(self): expected = DataFrame(index=[0]) tm.assert_frame_equal(result, expected) + def test_constructor_single_row(self): + data = [OrderedDict([["a", 1.5], ["b", 3], ["c", 4], ["d", 6]])] + + result = DataFrame(data) + expected = DataFrame.from_dict(dict(zip([0], data)), orient="index") + tm.assert_frame_equal(result, expected.reindex(result.index)) + def test_constructor_ordered_dict_preserve_order(self): # see gh-13304 expected = DataFrame([[2, 1]], columns=["b", "a"])