Книга посвящена автоматизации Excel с помощью языка программирования Python. Описаны дистрибутив Anaconda Python и современные средства разработки, такие как менеджеры пакетов Conda и pip, блокноты Jupyter и Visual Studio Code. Даны необходимые основы языка Python и введение в анализ данных с помощью библиотеки pandas.
Приведены приемы чтения и записи файлов Excel без Excel. Рассмотрено программирование приложений Excel с помощью популярного пакета с открытым исходным кодом xlwings: автоматизация Excel, инструменты на основе технологии Python, трекер пакетов Python, а также функции, определяемые пользователем.
https://github.com/fzumstein/python-for-excel
Author(s): Феликс Зумштейн
Publisher: БХВ-Петербург
Year: 2023
Language: Russian
Pages: 336
City: СПб.
Tags: python
Содержание
Предисловие
Почему я написал эту книгу
Кому адресована эта книга
Структура книги
Версии Python и Excel
Условные обозначения, используемые в этой книге
Примеры использования кода
Иллюстрации
Онлайн-обучение O'Reilly
Как с нами связаться
Благодарности
Часть I. Введение в Python
Глава 1. Зачем нужен Python для Excel?
Excel как язык программирования
Excel в новостях
Передовые методы программирования
Разделение задач
Слой представления
Слой бизнес-логики
Слой данных
Принцип DRY
Тестирование
Контроль версий
Современный Excel
Power Query и Power Pivot
Power Bl
Python для Excel
Читабельность и эксплуатационная пригодность
Стандартная библиотека и менеджер пакетов
Научные вычисления
Особенности современного языка
Кросс-платформенная совместимость
Заключение
Глава 2. Среда разработки
Дистрибутив Anaconda Python
Установка
Anaconda Prompt
Python REPL: интерактивная сессия Python
Менеджеры пакетов: Conda и pip
Среды Conda
Jupyter Notebooks
Запуск блокнотов Jupyter
Ячейки блокнота
Режим редактирования и командный режим
Порядок выполнения имеет значение
Завершение работы блокнотов Jupyter
Visual Studio Code
Установка и настройка
Запуск скрипта на Python
Заключение
Глава 3. Приступая к работе с Python
Типы данных
Объекты
Переменные
Функции
Атрибуты и методы
Числовые типы
Математические операторы
Логический тип данных
Строки
Индексирование и нарезка
Индексирование
Нарезка (Slicing)
Структуры данных
Списки
Словари
Кортежи
Множества
Управление потоком
Блоки кода и оператор pass
Оператор if и условные выражения
Циклы for и while
Анализ списков, словарей и множеств
Организация кода
Функции
Определение функций
Вызов функции
Модули и инструкция по импорту
Класс datetime
РЕР 8: Руководство по стилю для кода Python
РЕР 8 и VS Code
Подсказки по типам
Заключение
Часть II. Введение в pandas
Гдава 4. Основы NumPy
Начало работы с NumPy
Массив NumPy
Векторизация и транслирование
Универсальные функции (ufunc)
Создание и манипулирование массивами
Получение и установка элементов массива
Полезные конструкторы массива
Представления и копирование
Заключение
Глава 5. Анализ данных с помощью pandas
DataFrame и Series
Индекс
Столбцы
Манипулирование данными
Выбор данных
Выбор по метке
Выбор по позиции
Выбор с помощью булевой индексации
Выбор с помощью Multilndex
Изменение данных
Изменение данных по метке или позиции
Изменение данных с помощью булевой индексации
Изменение данных с помощью замены значений
Изменение данных с помощью добавления нового столбца
Отсутствующие данные
Дубликаты данных
Арифметические операции
Работа с текстовой колонкой
Использование функции
Просмотр и копирование
Объединение DataFrames
Объединение
Объединение и слияние
Описательная статистика и агрегация данных
Описательная статистика
Группировка
Pivoting и Melting
Построение графиков
Matplotlib
Plotly
Импорт и экспорт DataFrames
Экспорт CSV файлов
Импорт CSV-файлов
Заключение
Глава 6. Анализ временных рядов с помощью pandas
Datetimeindex
Создание Datetimeindex
Фильтрация Datetimeindex
Работа с часовыми поясами
Общие манипуляции с временными рядами
Смещение и процентные изменения
Пересчет и корреляция
Повторная выборка
Скользящее окно
Ограничения при работе с pandas
Заключение
Часть III. Чтение и запись файлов Excel без Excel
Глава 7. Манипулирование файлами Excel с помощью pandas
Тематическое исследование: отчетность в Excel
Чтение и запись файлов Excel с помощью pandas
Функция read_excel и класс ExcelFile
Метод to_excel и класс ExcelWriter
Ограничения при работе pandas с файлами Excel
Заключение
Глава 8. Манипулирование файлами Excel с помощью пакетов reader и writer
Пакеты reader и writer
В каких случаях какой пакет используется
Модуль excel.ру
OpenPyXL
Чтение с помощью OpenPyXL
Запись с помощью OpenPyXL
Редактирование с помощью OpenPyXL
XlsxWriter
pyxlsb
xlrd, xlwt, and xlutils
Чтение с помощью xlrd
Работа с xlwt
Редактирование с помощью xlutils
Расширенный круг задач для reader и writer
Работа с большими файлами Excel
Запись с помощью OpenPyXL
Запись с помощью XlsxWriter
Чтение с помощью xlrd
Чтение с помощью OpenPyXL
Параллельное чтение листов
Форматирование данных в Excel
Форматирование индексов и заголовков DataFrame
Форматирование части данных DataFrame
Тематическое исследование (повторное): отчетность в Excel
Заключение
Часть IV. Программирование приложения Excel с помощью xlwings
Глава 9. Автоматизация Excel
Начало работы с xlwings
Использование Excel в качестве средства просмотра данных
Объектная модель Excel
Запуск кода VBA
Конвертеры, опции и коллекции
Работа с DataFrames
Конвертеры и опции
Диаграммы, рисунки и определенные имена
Диаграммы Excel
Изображения: Графики Matplotlib
Определенные имена
Случай из практики (повторный анализ): отчетность в Excel
Расширенные темы xlwings
Основы xlwings
Улучшение производительности
Минимизация вызовов между приложениями
Необработанные значения
Свойства приложений
Как действовать при отсутствии недостающих функций
Заключение
Глава 10. Инструменты Excel на основе технологии Python
Использование Excel в качестве интерфейса xlwings
Надстройка Excel
Команда Quickstart
Run Main
Функция RunPython
Запуск Python без команды quickstart
Развертывание
Зависимости Python
Автономные рабочие книги: избавление от надстройки xlwings
Иерархия конфигурации
Настройки
Заключение
Глава 11. Трекер пакетов Python
Что мы будем создавать
Основной функционал
Web APIs
Базы данных
База данных трекера пакетов
Подключение к базе данных
SQL-запросы
SQL-инъекция
Исключения
Структура приложения
Внешний интерфейс
Внутренний интерфейс
Отладка
Заключение
Глава 12. Функции, определяемые пользователем (UDFs)
Начало работы с UDF
UDF Quickstart
Тематическое исследование: Google Trends
Введение в Google Trends
Работа с DataFrames и динамическими массивами
Получение данных из Google Trends
Построение графиков с помощью UDF
Отладка UDFs
Дополнительные вопросы по UDF
Базовая оптимизация производительности
Минимизация перекрестных вызовов приложений
Использование необработанных значений
Кэширование
Декоратор Sub
Заключение
Часть V. Приложения
Приложение А. Среда Conda
Создание новой среды Conda
Отключение автоматической активации
Приложение В. Расширенные функциональные возможности VS Code
Отладчик
Блокноты Jupyter в VS Code
Запуск блокнотов Jupyter
Сценарии Python с ячейками кода
Приложение С. Дополнительные концепции Python
Классы и объекты
Работа с объектами datetime с учетом временной зоны
Изменяемые и неизменяемые объекты Python
Вызов функций с изменяемыми объектами в качестве аргументов
Функции с изменяемыми объектами в качестве аргументов по умолчанию
Об авторе
Обложка
Предметный указатель