Как объединить несколько листов excel в pandas
Часто вам может потребоваться импортировать и объединить несколько листов Excel в один DataFrame pandas.
Например, предположим, что у вас есть следующая книга Excel под названием data.xlsx с тремя разными листами, каждый из которых содержит два столбца данных о баскетболистах:
Мы можем легко импортировать и объединить каждый лист в один DataFrame pandas, используя функции pandas concat() и read_excel() , но сначала нам нужно убедиться, что xlrd установлен:
pip install xlrd
После установки мы можем использовать следующий код для импорта и объединения этих трех листов в один DataFrame Pandas:
#load pandas library import pandas as pd #import and combine the three sheets into one pandas DataFrame df = pd. concat (pd. read_excel ('data.xlsx', sheet_name= None ), ignore_index= True ) #view DataFrame df player points 0 to 12 1 B 5 2 C 13 3 D 17 4 E 27 5 F 24 6 G 26 7:27 a.m. 8 I 27 9 D 12 10K 9 11 L 5 12 M 5 13 N 13 14 O 17
Как работает этот код
Чтобы понять, как эта единственная строка кода может импортировать и объединять несколько листов Excel, нужно всего две части:
1. Прочитайте все листы.
p.d. read_excel ('data.xlsx', sheet_name= None )
Этот фрагмент кода читается на всех листах книги Excel. По умолчанию функция read_excel() считывает только первый лист, но, указавsheet_name =None, мы можем прочитать каждый лист в книге Excel.
2. Объедините все листы.
p.d. concat ( DataFrames to concatenate , ignore_index= True )
Этот фрагмент кода просто объединяет все DataFrame из каждого листа Excel в один DataFrame pandas. Указывая ignore_index=True , мы сообщаем пандам, что отдельные имена листьев не важны.
Обратите внимание, что этот код работает только в том случае, если все листы Excel имеют одинаковый формат. В этом примере на каждом листе было два столбца данных, и каждый столбец имел одно и то же имя, поэтому эта единственная строка кода так легко объединила каждый лист Excel в один DataFrame pandas.
Дополнительные ресурсы
Полное руководство: как читать файлы Excel с помощью Pandas
Как писать фреймы данных Pandas на нескольких листах Excel