Skip to content

Commit c10b931

Browse files
committed
modified as suggested
1 parent e79e9a1 commit c10b931

File tree

3 files changed

+31
-9
lines changed

3 files changed

+31
-9
lines changed

pandas/io/excel/_base.py

+25-6
Original file line numberDiff line numberDiff line change
@@ -358,10 +358,6 @@ def read_excel(
358358
mangle_dupe_cols=True,
359359
storage_options: StorageOptions = None,
360360
):
361-
kwargs = locals().copy()
362-
for each in kwargs:
363-
if isinstance(locals()[each], dict):
364-
kwargs[each] = locals()[each].copy()
365361

366362
should_close = False
367363
if not isinstance(io, ExcelFile):
@@ -373,9 +369,32 @@ def read_excel(
373369
"an ExcelFile - ExcelFile already has the engine set"
374370
)
375371

376-
del kwargs["io"], kwargs["engine"], kwargs["storage_options"]
377372
try:
378-
data = io.parse(**kwargs)
373+
data = io.parse(
374+
sheet_name=sheet_name,
375+
header=header,
376+
names=names,
377+
index_col=index_col,
378+
usecols=usecols,
379+
squeeze=squeeze,
380+
dtype=dtype,
381+
converters=converters,
382+
true_values=true_values,
383+
false_values=false_values,
384+
skiprows=skiprows,
385+
nrows=nrows,
386+
na_values=na_values,
387+
keep_default_na=keep_default_na,
388+
na_filter=na_filter,
389+
verbose=verbose,
390+
parse_dates=parse_dates,
391+
date_parser=date_parser,
392+
thousands=thousands,
393+
comment=comment,
394+
skipfooter=skipfooter,
395+
convert_float=convert_float,
396+
mangle_dupe_cols=mangle_dupe_cols,
397+
)
379398
finally:
380399
# make sure to close opened file handles
381400
if should_close:

pandas/io/parsers/python_parser.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,10 @@ def __init__(self, f: FilePathOrBuffer | list, **kwds):
8181
self.verbose = kwds["verbose"]
8282
self.converters = kwds["converters"]
8383

84-
self.dtype = kwds["dtype"]
84+
if isinstance(kwds["dtype"], dict):
85+
self.dtype = kwds["dtype"].copy()
86+
else:
87+
self.dtype = kwds["dtype"]
8588
self.thousands = kwds["thousands"]
8689
self.decimal = kwds["decimal"]
8790

pandas/tests/io/excel/test_readers.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1284,7 +1284,7 @@ def test_dtype_dict_unchanged_with_duplicate_columns(self, read_ext):
12841284
filename = "test_common_headers" + read_ext
12851285
dtype_dict = {"a": str, "b": str, "c": str}
12861286
dtype_dict_copy = dtype_dict.copy()
1287-
read = pd.read_excel(filename, dtype=dtype_dict)
1287+
result = pd.read_excel(filename, dtype=dtype_dict)
12881288
expected = DataFrame(
12891289
{
12901290
"a": ["1", "2", "3"],
@@ -1294,7 +1294,7 @@ def test_dtype_dict_unchanged_with_duplicate_columns(self, read_ext):
12941294
}
12951295
)
12961296
assert dtype_dict == dtype_dict_copy, "dtype dict changed"
1297-
tm.assert_frame_equal(read, expected)
1297+
tm.assert_frame_equal(result, expected)
12981298

12991299

13001300
class TestExcelFileRead:

0 commit comments

Comments
 (0)