From 7e5eb1b520568ac7ce588bea51e7e3c5d7c7a887 Mon Sep 17 00:00:00 2001 From: weikhor Date: Sun, 30 May 2021 01:40:41 +0800 Subject: [PATCH 1/5] resolve different types if the DataFrame is empty --- pandas/core/frame.py | 3 +++ pandas/tests/frame/test_aggregate.py | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 pandas/tests/frame/test_aggregate.py diff --git a/pandas/core/frame.py b/pandas/core/frame.py index 6e71cb49596c8..5ccc5f20875b2 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -8534,6 +8534,9 @@ def aggregate(self, func=None, axis: Axis = 0, *args, **kwargs): result_in_dict = relabel_result(result, func, columns, order) result = DataFrame(result_in_dict, index=columns) + if isinstance(result, DataFrame): + result = result.squeeze() + return result agg = aggregate diff --git a/pandas/tests/frame/test_aggregate.py b/pandas/tests/frame/test_aggregate.py new file mode 100644 index 0000000000000..8f7c12fc53f95 --- /dev/null +++ b/pandas/tests/frame/test_aggregate.py @@ -0,0 +1,23 @@ +import numpy as np + +import pandas as pd + +from pandas import ( + DataFrame, + Series, + date_range, + timedelta_range, +) + +import pandas._testing as tm + + +def _check_mixed_int(df, dtype=None): + # GH#41672 + result = DataFrame([], columns=['lang', 'name']) + result = result.agg({'name': lambda y: y.values}) + assert type(result) == Series + + result = DataFrame([['a', 'boof']], columns=['lang', 'name']) + result = result.agg({'name': lambda y: y.values}) + assert type(result) == Series From ff4e0ad2a41f0461bd525355edd340fe3666bd6e Mon Sep 17 00:00:00 2001 From: weikhor Date: Sun, 30 May 2021 09:09:28 +0800 Subject: [PATCH 2/5] resolve line spacing --- pandas/tests/frame/test_aggregate.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/pandas/tests/frame/test_aggregate.py b/pandas/tests/frame/test_aggregate.py index 8f7c12fc53f95..16d769afb93f1 100644 --- a/pandas/tests/frame/test_aggregate.py +++ b/pandas/tests/frame/test_aggregate.py @@ -1,14 +1,12 @@ import numpy as np import pandas as pd - from pandas import ( DataFrame, Series, date_range, timedelta_range, ) - import pandas._testing as tm From ac52b1c421c139296eaf3fdc77a3a75324195b74 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 2 Feb 2022 15:10:14 +0800 Subject: [PATCH 3/5] test case for replace different int types --- pandas/tests/series/methods/test_replace.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pandas/tests/series/methods/test_replace.py b/pandas/tests/series/methods/test_replace.py index 6a8dacfda5e78..68a3844acc338 100644 --- a/pandas/tests/series/methods/test_replace.py +++ b/pandas/tests/series/methods/test_replace.py @@ -651,3 +651,15 @@ def test_replace_regex_dtype_series(self, regex): expected = pd.Series([1]) result = series.replace(to_replace="0", value=1, regex=regex) tm.assert_series_equal(result, expected) + + def test_replace_different_int_types(self): + # GH#45311 + labs = pd.Series([1, 1, 1, 0, 0, 2, 2, 2]).astype(np.int32) + + maps = pd.Series([np.int64(0), np.int64(2), np.int64(1)]) + map_dict = {old: new for (old, new) in zip(maps.values, maps.index)} + + result = labs.replace(map_dict) + expected = labs.replace({0: 0, 2: 1, 1: 2}) + + tm.assert_series_equal(result, expected) From abbd469d1bc181df7b903bef37a0f2d2728fd60f Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 2 Feb 2022 15:16:57 +0800 Subject: [PATCH 4/5] autopep8 --- pandas/core/frame.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/core/frame.py b/pandas/core/frame.py index 5c193dfbacb8a..8274b5850bb4c 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -8738,7 +8738,7 @@ def aggregate(self, func=None, axis: Axis = 0, *args, **kwargs): if isinstance(result, DataFrame): result = result.squeeze() - + return result agg = aggregate From 6b277ec574bfe3f618ebeaa94126b0f91352e130 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 2 Feb 2022 15:19:30 +0800 Subject: [PATCH 5/5] autopep8 --- pandas/core/frame.py | 3 --- pandas/tests/frame/test_aggregate.py | 21 --------------------- 2 files changed, 24 deletions(-) delete mode 100644 pandas/tests/frame/test_aggregate.py diff --git a/pandas/core/frame.py b/pandas/core/frame.py index 8274b5850bb4c..5674c118f63d6 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -8736,9 +8736,6 @@ def aggregate(self, func=None, axis: Axis = 0, *args, **kwargs): result_in_dict = relabel_result(result, func, columns, order) result = DataFrame(result_in_dict, index=columns) - if isinstance(result, DataFrame): - result = result.squeeze() - return result agg = aggregate diff --git a/pandas/tests/frame/test_aggregate.py b/pandas/tests/frame/test_aggregate.py deleted file mode 100644 index 16d769afb93f1..0000000000000 --- a/pandas/tests/frame/test_aggregate.py +++ /dev/null @@ -1,21 +0,0 @@ -import numpy as np - -import pandas as pd -from pandas import ( - DataFrame, - Series, - date_range, - timedelta_range, -) -import pandas._testing as tm - - -def _check_mixed_int(df, dtype=None): - # GH#41672 - result = DataFrame([], columns=['lang', 'name']) - result = result.agg({'name': lambda y: y.values}) - assert type(result) == Series - - result = DataFrame([['a', 'boof']], columns=['lang', 'name']) - result = result.agg({'name': lambda y: y.values}) - assert type(result) == Series