Skip to content

Commit 90f638f

Browse files
Pass sort for agg multiple (pandas-dev#21062)
1 parent 81cfe91 commit 90f638f

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

pandas/core/base.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -608,7 +608,7 @@ def _aggregate_multiple_funcs(self, arg, _level, _axis):
608608
raise ValueError("no results")
609609

610610
try:
611-
return concat(results, keys=keys, axis=1)
611+
return concat(results, keys=keys, axis=1, sort=False)
612612
except TypeError:
613613

614614
# we are concatting non-NDFrame objects,

pandas/tests/frame/test_apply.py

+25
Original file line numberDiff line numberDiff line change
@@ -908,6 +908,31 @@ def test_demo(self):
908908
index=['max', 'min', 'sum'])
909909
tm.assert_frame_equal(result.reindex_like(expected), expected)
910910

911+
def test_agg_multiple_mixed_no_warning(self):
912+
# https://github.com/pandas-dev/pandas/issues/20909
913+
mdf = pd.DataFrame({'A': [1, 2, 3],
914+
'B': [1., 2., 3.],
915+
'C': ['foo', 'bar', 'baz'],
916+
'D': pd.date_range('20130101', periods=3)})
917+
expected = pd.DataFrame({"A": [1, 6], 'B': [1.0, 6.0],
918+
"C": ['bar', 'foobarbaz'],
919+
"D": [pd.Timestamp('2013-01-01'), pd.NaT]},
920+
index=['min', 'sum'])
921+
# sorted index
922+
with tm.assert_produces_warning(None):
923+
result = mdf.agg(['min', 'sum'])
924+
925+
tm.assert_frame_equal(result, expected)
926+
927+
with tm.assert_produces_warning(None):
928+
result = mdf[['D', 'C', 'B', 'A']].agg(['sum', 'min'])
929+
930+
# For backwards compatibility, the result's index is
931+
# still sorted by function name, so it's ['min', 'sum']
932+
# not ['sum', 'min'].
933+
expected = expected[['D', 'C', 'B', 'A']]
934+
tm.assert_frame_equal(result, expected)
935+
911936
def test_agg_dict_nested_renaming_depr(self):
912937

913938
df = pd.DataFrame({'A': range(5), 'B': 5})

0 commit comments

Comments
 (0)