Файлы к уроку:
Ссылки:
Описание
Наша задача — объединить много Excel XLSX файлов в один файл CSV. Это довольно частая задача, которая решается Excel-специалистами в Python. Зачем это нужно:
- Чтобы работать с одним файлом, а не целой кучей. Если мы объединяем файлы в PQ, то отчет работает очень медленно. Гораздо лучше в Excel сразу импортировать объединенный файл;
- Чтобы отказать от XLSX формата. Если мы работаем с внешними файлами в формате XLSX, то мы обречены на очень низкую производительность. Файлы в формате CSV обрабатываются в десятки раз быстрее, чем в формате XLSX.
Как склеить несколько XLSX файлов в один при помощи Python? Мы сделаем это всего в несколько шагов.
Импортируем нужные модули
Первым делом импортируем модули, которые понадобится для обработки:
- pandas — чтобы импортировать и подготовить данные
- glob — чтобы подключиться к нужно папке и найти в ней нужные файлы
Код будет такой:
import glob
import pandas as pd
Получаем список файлов в папке
Мы хотим получить только список XLSX файлов из нужной нам папки. Лишние файлы нам не нужны. Для этого нужна функция glob. Сгенерируем список XLSX файлов из нужной нам папки.
files = [item for item in glob.glob(r'c:\Users\Timur\Downloads\PQ\Pandas. Объединить xlsx файлы\*{}'.format('.xlsx'))]
Создадим цикл обработки и объединения файлов
Мы создадим цикл, который обработает каждый файл и запишет результат в созданный для этого датафрейм.
При импорте мы удалим лишние строки сверху и выберем только нужные столбцы.
После этого мы переупорядочим столбцы и переименуем их.
combined = pd.DataFrame()
for file in files:
file = pd.read_excel(file,
skiprows=9,
usecols=['Дата\nконтракта','Код точки\nпродаж','Пользователь','MSISDN','ICC'])
file = file[['Дата\nконтракта','Код точки\nпродаж','Пользователь','MSISDN','ICC']]
file.columns=['date','posid','user','msisdn','icc']
combined = pd.concat([combined, file])
Запишем результат в файл CSV
Осталось всего лишь результат из переменной combined записать в файл CSV.
combined.to_csv(r'c:\Users\Timur\Downloads\PQ\Pandas. Объединить xlsx файлы\combined.csv')
Курс Python Практический
Номер урока | Урок | Описание |
---|---|---|
1 | Python Практический. Скачиваем котировки | В этом уроке мы научимся скачивать котировки с помощью модуля pandas_datareader. |
2 | Python Практический. Объединить книги Excel | В этом уроке мы объединим много Excel файлов в один CSV файл с помощью Python |
3 | Python Практический. Объединить книги Excel | Дополним урок по объединению большого количества XLSX файлов в один CSV при помощи Python. Добавим Progress Bar и вывод времени начала обработки каждого файла. |
4 | Python Практический. Создать Progress Bar | В этом уроке мы научимся создавать Progress Bar в Python. Для этого воспользуемся модулем tqdm. |
5 | Python Практический. Объединить листы книги Excel | Объединим множество листов одной книги Excel по вертикали. |
6 | Python Практический. Объединить книги Excel и листы в них | Как объединить книги Excel и все листы в них в одну таблицу. |
7 | Python Практический. Объединить множество CSV | Объединим множество CSV файлов по вертикали в один CSV файл. |
8 | Python Практический. Таблицы из множества интернет-страниц | Извлечем таблицу из множества веб-страниц и объединим по вертикали. |
9 | Python Практический. Многостраничное извлечение таблиц с Requests и BS4 | В этом уроке мы с помощью Python модулей Requests и BS4 извлечем таблицу из множества web-страниц, потом все эти таблицы объединим по вертикали в одну и запишем результат в Excel файл. |
10 | Python Практический. Скрапинг/Парсинг сайтов с Selenium и BS4 | В этом уроке мы будем скрапить/парсить веб сайт с Python модулями Selenium и BF4. |
11 | Python Практический. Автоматизация браузера Python Selenium, Скрапинг, скачивание выписок ЕГРЮЛ | В этом уроке мы познакомимся с модулем Selenium для Python. Он позволяет автоматизировать работу браузера, например, открывать веб-страницы, заполнять формы, получать содержимое блоков и скачивать файлы. Мы изучим основы Selenium на примере получения данных ЕГРЮЛ по ИНН и автоматическому скачиванию выписок ЕГРЮЛ. |
12 | Python Практический. Множественная замена текста с Pandas | В этом уроке мы выполним множественную замена текста с помощью модуля Pandas |