Как я могу импортировать несколько листов Excel в многоиндексный фрейм данных в Python? - PullRequest
1 голос
/ 29 мая 2019

Я пытаюсь импортировать файл Excel с несколькими листами, содержащими одинаковую структуру двумерных массивов в многоиндексированном Dataframe в Python.

Предположим, что каждый лист содержит массив (A, B) x (a, б).В основном я хотел бы иметь что-то вроде этого

  Sheet1  |   Sheet2   |  Sheet3
   a | b  |   a | b    |  a | b
A 
B

Я попытался использовать цикл for.

df={}
for i in Sheets:
    df[i] = pd.read_excel (r'file.xlsx', sheet_name = [i], header=0, index_col=0)

Я бы ожидал, что df будет таким, что, если я вспомню

df['Sheet1']

Я могу получить один из массивов, и это на самом деле работает нормально.Проблема возникает, если я пытаюсь вызвать

df['Sheet1']['a']

, чтобы получить первый столбец первого листа.Однако я получаю следующее сообщение об ошибке

KeyError: a

, и я застреваю здесь.

1 Ответ

3 голосов
/ 29 мая 2019

sheet_name=None in pd.read_excel

Произведет диктонарию всех листов. Передайте это pd.concat с axis=1

pd.concat(pd.read_excel('Book1.xlsx', None, index_col=0), axis=1)

  Sheet1    Sheet2    Sheet3   
       a  b      a  b      a  b
A      1  2      1  2      1  2
B      3  4      3  4      3  4

Вы также можете ограничить листы, передав список имен

pd.concat(pd.read_excel('Book1.xlsx', ['Sheet1', 'Sheet2', 'Sheet3'], index_col=0), axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...