Файлы к уроку:
Ссылки:
Описание
В этом уроке мы дополним урок по объединению XLSX файлов с помощью Python.
Что мы добавим:
- Воспользуемся модулем os, чтобы сменить рабочую директорию и не указывать директорию каждый раз заново
- Воспользуемся модулем tqdm для создания Progress Bar
- При помощи команды print мы вначале каждого витка цикла выведем на экран время старта обработки каждого файла
Решение
В первой ячейке импортируем модули:
import glob
import pandas as pd
import os
from tqdm import tqdm_notebook as tqdm
from datetime import datetime
os.chdir(r'c:\Users\Timur\Downloads\PQ\Comrade Excel TV 2.1. Отобразить время запуска\0002. Объединить много XLSX файлов в один CSV')
os.getcwd()
По сравнению с прошлым вариантом здесь добавился импорт модуля os для смены директории, модуль tqdm для Progress Bar и модуль datetime для вывода даты и времени.
Команда os.getcwd() выводит на экран текущую рабочую директорию. Мы вводим эту команду просто, чтобы убедиться, что директория сменилась.
Во второй ячейке получим список всех XLSX файлов в папке:
files = [item for item in glob.glob('*{}'.format('.xlsx'))]
files
В третьей ячейке создаем цикл, который обработает и объединит все файлы XLSX в один датайрейм:
combined = pd.DataFrame()
for filename in tqdm(files):
print(filename, "Начало: ", datetime.time(datetime.now()))
file = pd.read_excel(filename,
skiprows=8,
header=1,
usecols=['Дата\nконтракта','Код точки\nпродаж','Пользователь','MSISDN','ICC'])
file = file[['Дата\nконтракта','Код точки\nпродаж','Пользователь','MSISDN','ICC']]
file.columns=['date','posid','user','msisdn','icc']
combined = pd.concat([combined, file])
print("Готово: ", datetime.time(datetime.now()))
Здесь мы применили функцию tqdm для вывода Progress Bar, а также перед обработкой файла выводим время начала его обработки.
В четвертой ячейке запишем получившийся датафрейм в файл CSV:
combined.to_csv(os.getcwd()+'\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 |