From 131456d6451fbc013b1d5dbf621dd4787b23bbf7 Mon Sep 17 00:00:00 2001 From: AlexGregory96 <49785867+Alex-Gregory-1@users.noreply.github.com> Date: Sun, 18 Jul 2021 00:22:17 +0100 Subject: [PATCH 1/3] TST: added test for issue #26568 --- pandas/tests/reshape/test_pivot.py | 32 ++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/pandas/tests/reshape/test_pivot.py b/pandas/tests/reshape/test_pivot.py index 97e933e9821af..2abf536f5a6e0 100644 --- a/pandas/tests/reshape/test_pivot.py +++ b/pandas/tests/reshape/test_pivot.py @@ -2148,6 +2148,38 @@ def test_pivot_table_sort_false(self): ) tm.assert_frame_equal(result, expected) + def test_pivot_table_with_margins_and_numeric_columns(self): + # GH 26568 + + df = DataFrame([ + ['a', 'x', 1], + ['a', 'y', 2], + ['b', 'y', 3], + ['b', 'z', 4] + ]) + df.columns = [10, 20, 30] + + result = df.pivot_table( + index=10, + columns=20, + values=30, + aggfunc="sum", + fill_value=0, + margins=True + ) + + expected = DataFrame([ + [1, 2, 0, 3], + [0, 3, 4, 7], + [1, 5, 4, 10] + ]) + expected.columns = ['x', 'y', 'z', 'All'] + expected.index = ['a', 'b', 'All'] + expected.columns.name = 20 + expected.index.name = 10 + + tm.assert_frame_equal(result, expected) + class TestPivot: def test_pivot(self): From de6ca80167dfd695e13f925c3ee8a321ca6d0d3d Mon Sep 17 00:00:00 2001 From: AlexGregory96 <49785867+Alex-Gregory-1@users.noreply.github.com> Date: Sun, 18 Jul 2021 09:41:34 +0000 Subject: [PATCH 2/3] Fixes from pre-commit [automated commit] --- pandas/tests/reshape/test_pivot.py | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/pandas/tests/reshape/test_pivot.py b/pandas/tests/reshape/test_pivot.py index 2abf536f5a6e0..ce23684b2926f 100644 --- a/pandas/tests/reshape/test_pivot.py +++ b/pandas/tests/reshape/test_pivot.py @@ -2151,30 +2151,16 @@ def test_pivot_table_sort_false(self): def test_pivot_table_with_margins_and_numeric_columns(self): # GH 26568 - df = DataFrame([ - ['a', 'x', 1], - ['a', 'y', 2], - ['b', 'y', 3], - ['b', 'z', 4] - ]) + df = DataFrame([["a", "x", 1], ["a", "y", 2], ["b", "y", 3], ["b", "z", 4]]) df.columns = [10, 20, 30] result = df.pivot_table( - index=10, - columns=20, - values=30, - aggfunc="sum", - fill_value=0, - margins=True + index=10, columns=20, values=30, aggfunc="sum", fill_value=0, margins=True ) - expected = DataFrame([ - [1, 2, 0, 3], - [0, 3, 4, 7], - [1, 5, 4, 10] - ]) - expected.columns = ['x', 'y', 'z', 'All'] - expected.index = ['a', 'b', 'All'] + expected = DataFrame([[1, 2, 0, 3], [0, 3, 4, 7], [1, 5, 4, 10]]) + expected.columns = ["x", "y", "z", "All"] + expected.index = ["a", "b", "All"] expected.columns.name = 20 expected.index.name = 10 From 2c590f0425d39d619c1717dfe789baad6f847aef Mon Sep 17 00:00:00 2001 From: AlexGregory96 <49785867+Alex-Gregory-1@users.noreply.github.com> Date: Sun, 18 Jul 2021 12:51:26 +0100 Subject: [PATCH 3/3] added path_to_file.xlsx --- path_to_file.xlsx | Bin 0 -> 5582 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 path_to_file.xlsx diff --git a/path_to_file.xlsx b/path_to_file.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a7c9ea7dc59e746a7a60af9f644f86e0ad6eb53b GIT binary patch literal 5582 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 literal 0 HcmV?d00001