From 1a037a63d7b4720f78a4858f6434dada665a7441 Mon Sep 17 00:00:00 2001 From: scls19fr Date: Thu, 3 Nov 2016 10:44:43 +0100 Subject: [PATCH 1/2] ENH: return an OrderedDict from read_excel with sheetname=None --- doc/source/whatsnew/v0.20.0.txt | 2 +- pandas/io/excel.py | 6 +++--- pandas/io/tests/data/test_multisheet.xls | Bin 29696 -> 24576 bytes pandas/io/tests/data/test_multisheet.xlsm | Bin 10852 -> 11148 bytes pandas/io/tests/data/test_multisheet.xlsx | Bin 10816 -> 11131 bytes pandas/io/tests/test_excel.py | 5 ++++- 6 files changed, 8 insertions(+), 5 deletions(-) diff --git a/doc/source/whatsnew/v0.20.0.txt b/doc/source/whatsnew/v0.20.0.txt index 7fa9991138fba..9ae11810e94f0 100644 --- a/doc/source/whatsnew/v0.20.0.txt +++ b/doc/source/whatsnew/v0.20.0.txt @@ -30,7 +30,7 @@ New features Other enhancements ^^^^^^^^^^^^^^^^^^ - +- ``pd.read_excel`` when ``sheetname=None`` preserve sheet order (:issue:`9930`) .. _whatsnew_0200.api_breaking: diff --git a/pandas/io/excel.py b/pandas/io/excel.py index 6662d106ad85d..d3171ceedfc03 100644 --- a/pandas/io/excel.py +++ b/pandas/io/excel.py @@ -21,7 +21,7 @@ from pandas.tseries.period import Period from pandas import json from pandas.compat import (map, zip, reduce, range, lrange, u, add_metaclass, - string_types) + string_types, OrderedDict) from pandas.core import config from pandas.formats.printing import pprint_thing import pandas.compat as compat @@ -418,9 +418,9 @@ def _parse_cell(cell_contents, cell_typ): sheets = [sheetname] # handle same-type duplicates. - sheets = list(set(sheets)) + sheets = list(OrderedDict.fromkeys(sheets).keys()) - output = {} + output = OrderedDict() for asheetname in sheets: if verbose: diff --git a/pandas/io/tests/data/test_multisheet.xls b/pandas/io/tests/data/test_multisheet.xls index fa37723fcdefbd014df010d464223044c977273c..7b4b9759a1a94582d4e4986ed507f35fc935ae93 100644 GIT binary patch literal 24576 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 literal 29696 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 y(t?~5H{g$b2>VY%`MV+pb{+^iq#JOh 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 E0RD$aF8}}l literal 10852 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 GyZ-^HamEe+ diff --git a/pandas/io/tests/data/test_multisheet.xlsx b/pandas/io/tests/data/test_multisheet.xlsx index 5de07772b276aece2a8fef0fca7fc8018e1e4c2a..dc424a9963253a1b3bfc7432a50b061755aa2dd0 100644 GIT binary patch delta 8279 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ȕ$NIk?gQXp(_Sc3Z7;qa-DjQM3ca`T@N; zL|s1RDqKl?$~sN=4}sng)YP^JA%u6^o3tax4p(kTc__mVgmn81MjI}=^q(;O_aU*W zHiiPWsqEN2Ed&!cs|C*m{IvJ^{MQWE^6fO9xF%ejL|CdJC1XJ^?^9g=*Y$kUM#jQ6_!e() zXLJG2!5Z*mc9z0XYYk)pFe-74%Gd{lEDkZG}IDk)C%9S&kJSK@JQ78x2)DIq8vDkg&A_b?^eqjtU5fa7+h1aVh|%DIjpmdc2H7#;wt@BFj2oiqtIZ6%i%fXo+h^kzM@QkM}Ss8?>~! zc}%#-*XnJorYI2;>2h%Y`|pjI=G2{1yLyye z|FN2eoC+l^fg+qPNxTnf0!W8gA<!P3YkxEx}R< zR&e}QCs#qUHM^Up(bJmh%3xhy`lmQm`|RoXxOng@VkSP6Be@wGY=q5N`X+)z^SeWL z*a&QPZ=L=kL_HvsZe}PGtPzEo`gnuA1uS!%*=!Qhk_c2`O_&2x3bMjLN&HW!!~JhSC@ln^krJMW I{;${mAJI!bo&W#< delta 8036 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 Date: Fri, 11 Nov 2016 10:58:39 +0100 Subject: [PATCH 2/2] add small comment to test --- doc/source/whatsnew/v0.20.0.txt | 2 +- pandas/io/tests/test_excel.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/source/whatsnew/v0.20.0.txt b/doc/source/whatsnew/v0.20.0.txt index 9ae11810e94f0..660300e1814e8 100644 --- a/doc/source/whatsnew/v0.20.0.txt +++ b/doc/source/whatsnew/v0.20.0.txt @@ -30,7 +30,7 @@ New features Other enhancements ^^^^^^^^^^^^^^^^^^ -- ``pd.read_excel`` when ``sheetname=None`` preserve sheet order (:issue:`9930`) +- ``pd.read_excel`` now preserves sheet order when using ``sheetname=None`` (:issue:`9930`) .. _whatsnew_0200.api_breaking: diff --git a/pandas/io/tests/test_excel.py b/pandas/io/tests/test_excel.py index b762b905b4526..a4132cd69141a 100644 --- a/pandas/io/tests/test_excel.py +++ b/pandas/io/tests/test_excel.py @@ -379,6 +379,7 @@ def test_reading_all_sheets(self): # See PR #9450 basename = 'test_multisheet' dfs = self.get_exceldf(basename, sheetname=None) + # ensure this is not alphabetical to test order preservation expected_keys = ['Charlie', 'Alpha', 'Beta'] tm.assert_contains_all(expected_keys, dfs.keys()) # Issue 9930