Как читать несколько файлов Excel из папки в Python эффективно?
Введение
Чтение нескольких файлов Excel — частая задача в области дата-анализа и интернет-маркетинга. Это может понадобиться для обработки отчетов о маркетинговых активностях, анализа данных пользователями или сводки статистических данных из нескольких источников. Современные подходы позволяют автоматизировать этот процесс и сделать его более эффективным.
Необходимые библиотеки
Python предоставляет множество библиотек для работы с данными, но для работы с Excel наиболее распространены pandas
и openpyxl
. Эти библиотеки позволяют легко загружать данные из Excel-файлов и обрабатывать их в виде удобных DataFrame.
Установка библиотек
Для начала установим необходимые библиотеки:
pip install pandas openpyxl
Чтение одиночного Excel файла
Для начала рассмотрим базовый случай: чтение одного Excel файла. Используя pandas
, это можно сделать буквально в несколько строк кода.
Пример кода: Чтение одиночного файла
import pandas as pd
def read_excel_file(file_path: str) -> pd.DataFrame:
"""Читает Excel файл и возвращает его содержимое как DataFrame."""
return pd.read_excel(file_path)
# Пример использования
file_path = 'example.xlsx'
data = read_excel_file(file_path)
print(data)
Чтение нескольких файлов из папки
Когда необходимо обработать несколько файлов Excel из одной директории, на помощь приходит метод glob
для поиска всех файлов, соответствующих заданному шаблону.
Пример кода: Получение списка файлов
import glob
import os
def get_excel_files_from_folder(folder_path: str) -> list:
"""Возвращает список всех Excel файлов в папке."""
return glob.glob(os.path.join(folder_path, '*.xlsx'))
# Пример использования
folder_path = 'my_excel_files'
files = get_excel_files_from_folder(folder_path)
print(files)
Эффективная обработка нескольких файлов
Теперь, когда мы можем получить список Excel файлов, следующий шаг — пройти по каждому из них, прочитать данные и объединить их в один DataFrame. Этот процесс автоматизируется с помощью циклов.
Пример кода: Чтение и объединение данных из нескольких файлов
import pandas as pd
import glob
import os
def read_multiple_excel_files(folder_path: str) -> pd.DataFrame:
"""Читает все Excel файлы из папки и объединяет их в один DataFrame."""
all_data = []
for file in glob.glob(os.path.join(folder_path, '*.xlsx')):
df = pd.read_excel(file)
all_data.append(df)
return pd.concat(all_data, ignore_index=True)
# Пример использования:
fetched_data = read_multiple_excel_files('my_excel_files')
print(fetched_data)
Обработка данных после чтения
После объединения данных возникает необходимость их обработки: фильтрация, агрегация и другие операции. pandas
предоставляет мощные инструменты для этих целей.
Пример кода: Фильтрация данных
# Фильтрация данных, где 'column_name' больше 10
filtered_data = fetched_data[fetched_data['column_name'] > 10]
print(filtered_data)
Выводы
Использование вышеописанных методов позволяет значительно упростить и автоматизировать процесс чтения и обработки данных из нескольких Excel файлов. Объединение данных в один DataFrame дает возможность эффективно анализировать и манипулировать информацией. Для более сложных задач можно добавлять различные возможности, такие как параллельная обработка файлов или более сложные методы агрегации.