Как объединить несколько листов 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