Как объединить несколько листов Excel в Pandas
Часто вам может понадобиться импортировать и объединить несколько листов Excel в один кадр данных pandas.
Например, предположим, что у вас есть следующая книга Excel с именем data.xlsx с тремя разными листами, каждый из которых содержит два столбца данных о баскетболистах:
Мы можем легко импортировать и объединять каждый лист в один кадр данных 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 A 12
1 B 5
2 C 13
3 D 17
4 E 27
5 F 24
6 G 26
7 H 27
8 I 27
9 J 12
10 K 9
11 L 5
12 M 5
13 N 13
14 O 17
Как работает этот код
Есть только две части, чтобы понять, как эта единственная строка кода может импортировать и объединять несколько листов Excel:
1. Читать на всех листах.
pd.read_excel('data.xlsx', sheet_name= None )
Этот фрагмент кода читается на всех листах книги Excel. По умолчанию функция read_excel() читает только на первом листе, но, указав sheet_name=None , мы можем читать на каждом отдельном листе в книге Excel.
2. Объедините все листы.
pd.concat ( *DataFrames to concatenate* , ignore_index= True )
Этот фрагмент кода просто объединяет все кадры данных с каждого листа Excel в один кадр данных pandas. Указав ignore_index=True , мы сообщаем pandas, что имена отдельных листов не важны.
Обратите внимание, что этот код работает, только если все листы Excel имеют одинаковый формат. В этом примере на каждом листе было два столбца данных, и каждый столбец имел одно и то же имя, поэтому эта единственная строка кода работала так легко, чтобы объединить все листы Excel в один кадр данных pandas.
Дополнительные ресурсы
Полное руководство: как читать файлы Excel с помощью Pandas
Как записать кадры данных Pandas в несколько листов Excel