According to the doc, 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?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
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')
回答2:
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.
回答3:
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