Вот случай:
Первый кадр данных: product = pd.DataFrame()
Намерено прочитать в sheet_name = 4, действительно, первый лист был прочитан в:
product = pd.read_excel(excelfile, nrows=1, header=None, usecols=[1], sheet_name=4)
Проверьте элемент для этого листа:
product.loc[0,1]
u'CD Long-Term WAMP'
Проверьте адрес памяти этого кадра данных:
hex(id(product))
'0x7f326453ecd0'
Теперь создайте новый кадр данных, подтвердив, что он имеетдругой адрес памяти:
>>> product = pd.DataFrame()
>>> hex(id(product))
'0x7f326453ee10'
Считать в sheet_name = 5:
>>> product = pd.read_excel(excelfile, nrows=1, header=None, usecols=[1], sheet_name=5)
Еще раз проверить адрес памяти, без изменений:
>>> hex(id(product))
'0x7f3265ff6e10'
Проверить элемент: по какой-то причине он показывает данные предыдущего фрейма данных:
>>> product.loc[0,1]
u'CD Long-Term WAMP'
Таким образом, вы можете видеть, что опция sheet_name в pd.read_excel всегда указывает на первый лист.
Я что-то здесь упускаю?
Спасибо.
Я использую Python 2.7 от Anaconda в Linux, аналогичная проблема не обнаружена в Windows.