Skip to content

Commit f8c370c

Browse files
committed
BUG: Make ExcelFile.parse pass kwds to TextParser
1 parent 1101391 commit f8c370c

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed

pandas/io/excel.py

+6-3
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,8 @@ def parse(self, sheetname, header=0, skiprows=None, skip_footer=0,
126126
na_values=na_values,
127127
thousands=thousands,
128128
chunksize=chunksize,
129-
skip_footer=skip_footer)
129+
skip_footer=skip_footer,
130+
**kwds)
130131

131132
def _should_parse(self, i, parse_cols):
132133

@@ -163,7 +164,8 @@ def _excel2num(x):
163164
def _parse_excel(self, sheetname, header=0, skiprows=None,
164165
skip_footer=0, index_col=None, has_index_names=None,
165166
parse_cols=None, parse_dates=False, date_parser=None,
166-
na_values=None, thousands=None, chunksize=None):
167+
na_values=None, thousands=None, chunksize=None,
168+
**kwds):
167169
from xlrd import (xldate_as_tuple, XL_CELL_DATE,
168170
XL_CELL_ERROR, XL_CELL_BOOLEAN)
169171

@@ -206,7 +208,8 @@ def _parse_excel(self, sheetname, header=0, skiprows=None,
206208
date_parser=date_parser,
207209
skiprows=skiprows,
208210
skip_footer=skip_footer,
209-
chunksize=chunksize)
211+
chunksize=chunksize,
212+
**kwds)
210213

211214
return parser.read()
212215

pandas/io/tests/data/test2.xlsx

27.6 KB
Binary file not shown.

pandas/io/tests/test_excel.py

+16
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,22 @@ def test_excel_cell_error_na(self):
182182
expected = DataFrame([[np.nan]], columns=['Test'])
183183
tm.assert_frame_equal(parsed, expected)
184184

185+
def test_excel_passes_na(self):
186+
_skip_if_no_xlrd()
187+
188+
excel_data = ExcelFile(os.path.join(self.dirpath, 'test2.xlsx'))
189+
parsed = excel_data.parse('Sheet1', keep_default_na=False,
190+
na_values=['apple'])
191+
expected = DataFrame([['NA'], [1], ['NA'], [np.nan], ['rabbit']],
192+
columns=['Test'])
193+
tm.assert_frame_equal(parsed, expected)
194+
195+
parsed = excel_data.parse('Sheet1', keep_default_na=True,
196+
na_values=['apple'])
197+
expected = DataFrame([[np.nan], [1], [np.nan], [np.nan], ['rabbit']],
198+
columns=['Test'])
199+
tm.assert_frame_equal(parsed, expected)
200+
185201
def test_excel_table(self):
186202
_skip_if_no_xlrd()
187203

0 commit comments

Comments
 (0)