pandas.read_excel parameter "sheet_name" not working

Question:

According to pandas doc for 0.21+, pandas.read_excel has a parameter sheet_name that allows specifying which sheet is read. But when I am trying to read the second sheet from an excel file, no matter how I set the parameter (sheet_name = 1, sheet_name = 'Sheet2'), the dataframe always shows the first sheet, and passing a list of indices (sheet_name = [0, 1]) does not return a dictionary of dataframes but still the first sheet. What might be the problem here?

Asked By: user5409172

||

Answers:

You can try to use pd.ExcelFile:

xls = pd.ExcelFile('path_to_file.xls')
df1 = pd.read_excel(xls, 'Sheet1')
df2 = pd.read_excel(xls, 'Sheet2')
Answered By: whiplassh

It looks like you’re using the old version of Python.
So try to change your code

df = pd.read_excel(file_with_data, sheetname=sheet_with_data)

It should work properly.

Answered By: Sergey Solod

This works:

df = pd.read_excel(open(file_path_name), 'rb'), sheetname = sheet_name)

file_path_name = your file
sheet_name = your sheet name

This does not for me:

df = pd.read_excel(open(file_path_name), 'rb'), sheet_name = sheet_name)

Gave me only the first sheet, no matter how I defined sheet_name.

–> it is an known error:
https://github.com/pandas-dev/pandas/issues/17107

Answered By: Torolito

Try at Terminal, type the following first, then re-run your program:

pip install xlrd

Answered By: Lee Li Fong

I also faced this problem until I found this solution:

rd=pd.read_excel(excel_file,sheet_name=['Sheet2']),

Here excel_file means "file name".

The filename should be the full path to the file.

Make sure to use two backslashes (\) instead of just one!

In my case, this works.

I would just use double quotes like this.

# Returns a DataFrame
pd.read_excel("path_to_file.xls", sheet_name="Sheet1")
Answered By: zheng yin
pip install openpyxl

The above command worked for me.

Answered By: Darkside
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.