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