From 7e5eb1b520568ac7ce588bea51e7e3c5d7c7a887 Mon Sep 17 00:00:00 2001 From: weikhor Date: Sun, 30 May 2021 01:40:41 +0800 Subject: [PATCH 1/7] 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 878c33bce257f73cd7771f19ec78e3330355b7a2 Mon Sep 17 00:00:00 2001 From: weikhor Date: Sun, 30 May 2021 01:43:10 +0800 Subject: [PATCH 2/7] remove unnecessary import --- pandas/tests/frame/test_aggregate.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pandas/tests/frame/test_aggregate.py b/pandas/tests/frame/test_aggregate.py index 8f7c12fc53f95..52ef26bf78afd 100644 --- a/pandas/tests/frame/test_aggregate.py +++ b/pandas/tests/frame/test_aggregate.py @@ -4,9 +4,7 @@ from pandas import ( DataFrame, - Series, - date_range, - timedelta_range, + Series ) import pandas._testing as tm From 3e8b8d34d9b730897bfa4a2f5cb51f25636c264b Mon Sep 17 00:00:00 2001 From: weikhor Date: Sun, 30 May 2021 01:51:44 +0800 Subject: [PATCH 3/7] resolve quotes --- pandas/tests/frame/test_aggregate.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pandas/tests/frame/test_aggregate.py b/pandas/tests/frame/test_aggregate.py index 52ef26bf78afd..6e3791958f5be 100644 --- a/pandas/tests/frame/test_aggregate.py +++ b/pandas/tests/frame/test_aggregate.py @@ -12,10 +12,10 @@ def _check_mixed_int(df, dtype=None): # GH#41672 - result = DataFrame([], columns=['lang', 'name']) - result = result.agg({'name': lambda y: y.values}) + 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}) + result = DataFrame([["a", "boof"]], columns=["lang", "name"]) + result = result.agg({"name": lambda y: y.values}) assert type(result) == Series From e130bd544f07befd5d7d12e3e7a0b0dbd9a1fe9d Mon Sep 17 00:00:00 2001 From: weikhor Date: Sun, 30 May 2021 02:02:05 +0800 Subject: [PATCH 4/7] add comma --- pandas/tests/frame/test_aggregate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/frame/test_aggregate.py b/pandas/tests/frame/test_aggregate.py index 6e3791958f5be..7cd979d0b4d08 100644 --- a/pandas/tests/frame/test_aggregate.py +++ b/pandas/tests/frame/test_aggregate.py @@ -4,7 +4,7 @@ from pandas import ( DataFrame, - Series + Series, ) import pandas._testing as tm From f94905b3b5f574ff2e63068a4fefdd582dec46bc Mon Sep 17 00:00:00 2001 From: weikhor Date: Sun, 30 May 2021 08:48:21 +0800 Subject: [PATCH 5/7] standardize the test --- pandas/tests/frame/test_aggregate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/frame/test_aggregate.py b/pandas/tests/frame/test_aggregate.py index 7cd979d0b4d08..aabf27eac658e 100644 --- a/pandas/tests/frame/test_aggregate.py +++ b/pandas/tests/frame/test_aggregate.py @@ -10,7 +10,7 @@ import pandas._testing as tm -def _check_mixed_int(df, dtype=None): +def test_frame_aggregate(): # GH#41672 result = DataFrame([], columns=["lang", "name"]) result = result.agg({"name": lambda y: y.values}) From d5fad832fad13e638028abff846b942e93975a3f Mon Sep 17 00:00:00 2001 From: weikhor Date: Sun, 30 May 2021 09:10:52 +0800 Subject: [PATCH 6/7] 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 aabf27eac658e..3fd7e147e58a7 100644 --- a/pandas/tests/frame/test_aggregate.py +++ b/pandas/tests/frame/test_aggregate.py @@ -1,12 +1,10 @@ import numpy as np import pandas as pd - from pandas import ( DataFrame, Series, ) - import pandas._testing as tm From 190e8bf6788261a55011b5605a8a9ba3298c4038 Mon Sep 17 00:00:00 2001 From: weikhor Date: Sun, 30 May 2021 09:26:40 +0800 Subject: [PATCH 7/7] autopep --- 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 5ccc5f20875b2..25251b120e66b 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -8536,7 +8536,7 @@ def aggregate(self, func=None, axis: Axis = 0, *args, **kwargs): if isinstance(result, DataFrame): result = result.squeeze() - + return result agg = aggregate