Опубликовано

Arduino плюс Excel — сбор и хранение данных

По материалам книги В. Яценкова «Здоровье, спорт и окружающая среда в проектах Arduino» (глава 5. «Визуализация данных»)

Здоровье

Несмотря на широкое распространение облачных технологий и развитие систем обработки данных, в научных исследованиях и на производстве до сих пор часто применяется сбор, хранение и обмен данными в виде файлов Microsoft Excel. Если контроллер Arduino или другой прибор подключен к компьютеру через последовательный порт, можно без труда организовать автоматическое заполнение таблицы Excel, причем с поддержкой различных команд со стороны контроллера: заполнение ячеек, чтение ячеек, выбор рабочего листа таблицы, прокрутка листа и многое другое.

Компания Parallax Software разработала специальное расширение (plugin) PLX-DAQ для автоматического заполнения таблиц Excel данными, которые поступают от приборов через последовательный порт. Несколько лет назад официальная поддержка этого расширения была прекращена. Но энтузиасты платформы Arduino не просто продолжили его поддержку, а выпустили в 2016 году новую версию расширения, которая совместима с последними 64-битовыми версиями MS Office и Windows 10.

На официальном форуме Arduino создана специальная тема, посвященная этому расширению. Она расположена по адресу http://forum.arduino.cc/index.php?topic=437398.0. В первое сообщение темы разработчик регулярно добавляет ссылки на самую свежую версию расширения. На момент работы над книгой была доступна версия PLX-DAQ 2.11.

Расширение не требует установки и представляет собой файл Excel с присоединенным макросом на языке VBA (Visual Basic for Applications). Пользователь открывает файл, разрешает выполнение макросов и открывает последовательный порт, через который поступают данные из контроллера Arduino.

Строка сообщения Arduino содержит команды и данные. Макрос расширения считывает строку из последовательного порта, выполняет команды и сохраняет данные в ячейки таблицы. Макрос может отправить данные из таблицы Excel в Arduino в ответ на запрос контроллера.

Установка расширения на компьютер

Скачайте архив с самой новой версией расширения. Распакуйте его в удобное место. Архив состоит из следующих файлов:

  • PLX-DAQ-v2.11.xlsm — исходный шаблон файла Excel с макросом. Вы можете скопировать этот файл в другой каталог и переименовать или сохранить под другим именем;
  • PLX-DAQ-v2-DefaultSketch.ino — демонстрационный скетч Arduino, который содержит почти все возможные команды;
  • Beginners Guide to PLX DAQ v2 (rev1).doc — руководство пользователя;
  • PLX-DAQ-v2-AutoGrapher-RandomValue.ino — демонстрационный скетч с генератором случайных чисел и рисованием графика в реальном времени;
  • PLX-DAQ-v2-AutoGrapher-RandomValue.xlsm — файл Excel с примером данных для демонстрационного скетча.

Запуск расширения

Откройте файл шаблона. Для запуска расширения необходимо разрешить выполнение макросов (рис. 5.5). Нажмите кнопку Параметры и в открывшемся окне настроек выберите опцию Разрешить это содержимое. Если макрос не запустился автоматически, нажмите кнопку с надписью Open PLX DAQ UI в верхней части шаблона.

exclamation Готовый файл Excel c встроенным макросом PLX-DAQ (файл DustSensorTest.xlsm) можно найти в сопровождающем книгу электронном архиве (см. приложение 1). https://bhv.ru/product/zdorove-sport-i-okruzhayushhaya-sreda-v-proektah-arduino/

По соображениям безопасности не рекомендуется глобально разрешать выполнение произвольных макросов в общих настройках Excel. Лучше потратить несколько секунд на включение макросов по запросу.

5-5

Рис. 5.5. Запрос системы безопасности на разрешение запуска макросов

Рабочее окно и органы управления

После запуска макроса нажмите на кнопку Display direct debug, чтобы открыть поле, в которое выводятся поступающие данные и команды (рис. 5.6).

5-6

Рис. 5.6. Окно макроса PLX-DAQ

  • Port — номер порта, к которому подключен контроллер Arduino;
  • Baud — скорость соединения, бод;
  • Connect — установить соединение с портом;
  • Pause logging / Resume logging — приостановить запись данных;
  • Reset Timer — сбросить таймер макроса. Таймер используется для подстановки меток времени в таблицу и измерения продолжительности работы макроса Excel;
  • Clear Columns — удаляет все данные из столбцов таблицы. Заголовки столбцов сохраняются;
  • Display / Hide direct debug — показывает или прячет текстовое поле в правой части окна. В текстовом поле отображаются поступающие команды;
  • Sheet name to post to — отображает список доступных листов текущей книги Excel. Данные будут сохраняться в лист, который выбран в списке. В документе такой лист обозначен опцией ActiveSheet. После добавления, удаления или переименования листов обязательно нажмите кнопку Load для обновления списка;
  • Controller Messages — отображает последнее сообщение, поступившее от контроллера. Обычно сообщения меняются очень часто, поэтому их удобнее наблюдать в окне Direct Debug Window;
  • Reset on Connect — обычно при подключении к порту происходит автоматический сброс контроллера. Эта опция позволяет отключить автоматический сброс, если нельзя прерывать работу контроллера;
  • Custom Checkbox 1/2/3 — пользовательские опции для управления работой контроллера. Arduino может задать подписи к флажкам в окне макроса, читать состояние флажков и выполнять определенные действия в зависимости от их наличия;
  • Log incoming data? — запись входящего потока данных от контроллера в окно отладки. Уберите этот флажок, если возникают проблемы с быстродействием макроса;
  • Log outgoing data? — запись исходящего потока данных из макроса в контроллер. Уберите этот флажок, если возникают проблемы с быстродействием макроса;
  • Log system messages? — запись системной информации Excel (например, сообщений об ошибках). Уберите этот флажок, если возникают проблемы с быстродействием макроса;
  • Add timestamp? — добавление метки времени к каждой записи лога. Полезно для отладки;
  • кнопка => — увеличивает размер окна отладки;
  • кнопка <= — уменьшает размер окна отладки;
  • Clear — удаляет все записи в окне отладки.
exclamation Не перемещайте окно макроса во время записи данных. Это может привести к сбою работы Excel и потере данных.

Формат строки данных Arduino

Строка команд выводится в порт командой Serial.println(). Для правильного обмена данными между Arduino и макросом расширения строка должна иметь строго определенный формат. Вот пример стандартной строки:

Serial.println( (String) “DATA,DATE,TIME,” + millis() );

Команды строки данных можно условно разделить на основные группы:

  • настройка и передача данных — команды для форматирования листа и передачи данных;
  • специальные команды и управление — команды для переключения между листами и использования управляющих полей Custom Checkbox для Arduino;
  • рабочая книга Excel — команды для управления процессом записи данных или сохранения рабочей книги;
  • прочие команды — дополнительные команды, которые не имеют важного прикладного значения.

Рассмотрим подробнее эти группы команд.

Команды настройки и передачи данных

  • CLEARSHEET — полностью очищает рабочий лист (включая загловки столбцов!). Эта команда должна быть первой в любом скетче.

Пример: Serial.println(“CLEARSHEET”);

  • CLEARDATA — очищает только данные (начиная со второй строки таблицы).

Пример: Serial.println(“CLEARDATA”);

  • LABEL — устанавливает заголовки столбцов в первой строке таблицы.

Пример: Serial.println(“LABEL, Temperature, Humidity, Lightness”);

  • DATA — самая главная и важная команда. Служит для передачи данных из Arduino в активный лист книги Excel. Вы можете передавать произвольные данные, но должны разделить данные запятыми и обеспечить совпадение количества столбцов данных и количества заголовков.

Зарезервированные слова DATE, TIME и TIMER распознаются макросом и заменяются на соответствующие значения: слово DATE — на текущую системную дату компьютера (например, 15.09.2018), слово TIME — на текущее системное время (например, 15:32:17), слово TIMER — на продолжительность текущего сеанса работы макроса в секундах (например, 1458).

В строку можно добавить ключевое слово AUTOSCROLL_XX. Распознав это слово, макрос автоматически прокручивает текущий лист так, чтобы в нижней части таблицы всегда были пустые строки. Число XX указывает, сколько строк с данными следуют выше последней строки с данными, — например, AUTOSCROLL_20.

Специальные команды и управление

  • CELL,SET — вводит произвольное значение в указанную ячейку таблицы. Можно работать как с активным листом (ActiveSheet), так и с любым другим листом.

Пример для активного листа: Serial.println(“CELL,SET,C9,myValue”);

Эта команда вводит значение myValue в ячейку С9 активного листа.

Пример для произвольного листа:

Serial.println(“CELL,SET, ONSHEET,mySheet,C,9,myValue”);

Эта команда вводит значение myValue в ячейку C9 листа с названием mySheet.

exclamation Внимание!При высоких скоростях обмена могут возникнуть проблемы с обработкой команды SET — макрос не будет успевать ее выполнить. В таком случае уменьшите скорость передачи данных или введите небольшую задержку перед командой. Обычно достаточно задержки в диапазоне 3–100 мс (например, delay(10)).
  • CELL,GET — извлекает данные из указанной ячейки и передает их в Arduino. Например, можно заранее сохранить в таблицу последовательность значений температуры и времени, а термостат на основе Arduino будет поочередно считывать значения и выдерживать указанную температуру в течение заданного промежутка времени. Аналогичным образом можно управлять различными технологическими процессами — от координатного станка до инкубатора.
exclamation Контроллер Arduino должен не только отправить команду запроса, но и прочитать строку ответа. Тип данных ответа может быть Integer (целое число) или String (строка). Вы должны быть уверены, что макрос отправит именно строку, если Arduino ждет строку, и целое число, если Arduino ждет число.Используйте для чтения ответа одну из следующих команд:

Serial.readStringUntil(10);

Serial.readStringUntil(10).toInt();

Serial.readStringUntil(10).toFloat();

Число 10 в коде ASCII означает конец строки, поэтому следует использовать только это число.

Пример кода Arduino:

int myData;

Serial.println(“CELL,GET,C9”); // команда чтения из ячейки C9

myData = Serial.readStringUntil(10).toInt(); // получение ответа

Пример чтения содержимого ячейки C9 из произвольного листа mySheet:

Serial.println(“CELL,GET,FROMSHEET,mySheet,C,9”);

exclamation Внимание!При высоких скоростях обмена могут возникнуть проблемы с обработкой команды GET — макрос не будет успевать ее выполнить. В таком случае уменьшите скорость передачи данных или введите небольшую задержку перед командой. Обычно достаточно задержки в диапазоне 3–100 мс (например, delay(10)).
  • ROW — вы можете явно задать значение указателя строки, с которой будете работать. Например, когда записаны 20 строк данных, вы можете сбросить указатель до значения 2 и начать сначала заполнение строк.

Примеры команд:

Serial.println(“ROW,SET,2”);

Serial.println(“ROW,GET”);

int myRow = Serial.readStringUntil(10).toInt();

  • CUSTOMBOX1 / CUSTOMBOX2 / CUSTOMBOX3 — вы можете задать подпись к опции, снять или установить флажок и прочитать состояние опции (булево значение false / true).

Примеры:

Serial.println(“CUSTOMBOX1,LABEL,LED Light”);

Serial.println(“CUSTOMBOX1,GET”);

boolean myV=CheckValue = Serial.readStringUntil(10).toInt();

  • CLEARRANGE — очищает заданный диапазон строк (range) активного листа.

Пример: Serial.println(“CLEARRANGE,B,10,D,20”);

  • RESETTIMER — сбрасывает счетчик продолжительности работы расширения.

Пример: Serial.println(“RESETTIMER”);

Рабочая книга Excel

  • PAUSELOGGING / RESUMELOGGING / STOPLOGGING — пауза записи данных / возобновление записи / прекращение записи. Разумеется, расширение продолжит «слушать» и выполнять поступающие команды, даже если запись данных в ячейки приостановлена или прекращена.

Пример: Serial.println(“PAUSELOGGING”);

  • SAVEWORKBOOK — сохраняет рабочую книгу Excel под текущим именем. Команда полезна, если вы записываете данные в течение длительного времени и хотите периодически сохранять файл с данными.
  • SAVEWORKBOOKAS — сохраняет рабочую книгу Excel под заданным именем. По умолчанию новый файл сохраняется в тот же каталог, где находился исходный файл, но вы можете задать новый каталог в строке имени файла.

Пример сохранения в текущий каталог:

Serial.println(“SAVEWORKBOOKAS,MyNewWorkbookName”);

Пример сохранения в подкаталог с именем mySubfolder:

Serial.println(“SAVEWORKBOOKAS,mySubfolder\Workbookname”);

  • FORCEEXCELQUIT — опасная команда! Немедленно прекращает работу Excel! Обязательно сохраните рабочую книгу перед отправкой этой команды.

Пример: Serial.println(“FORCEEXCELQUIT”);

Прочие команды

  • BEEP — всего лишь заставляет компьютер издать короткий звуковой сигнал встроенным звукоизлучателем материнской платы или корпуса. Полезно, если надо привлечь внимание пользователя, когда достигнуто определенное значение величины, которую вы измеряете.

Пример: Serial.println(“BEEP”);

  • MSG — помещает заданный текст в метку сообщения Controller Message в окне расширения.

Пример: Serial.println(“MSG,Put your text here”);

  • DONE — принудительно передает содержимое буфера последовательного порта со стороны Excel.
  • GETRANDOM — передает случайное число из Excel в Arduino. Это полезная команда, потому что Arduino не может самостоятельно генерировать случайные числа. Функции random() в Arduino требуется инициализация генератора случайных чисел начальным значением при помощи функции randomSeed(value). Если начальное значение будет повторяться, то и вся последовательность полученных псевдослучайных чисел тоже будет повторяться. Обычно генератор случайных чисел Arduino инициализируют случайным значением, прочитанным с «висящего в воздухе» аналогового входа. Но если все входы заняты, начальное значение можно получить из Excel.

Пример:

Serial.println(“GETRANDOM,-31313,32323”);

int rndseed = Serial.readStringUntil(10).toInt();

randomSeed(rndseed);

Serial.println( (String) “1st number: “ + random(0, 50));

Serial.println( (String) “2nd number: “ + random(0, 50));

Serial.println( (String) “3rd number: “ + random(0, 50));

Демонстрационный скетч PLX–DAQ

Демонстрационный скетч, приведенный в листинге 5.5, основан на коде скетча из комплекта поставки расширения PLX-DAQ v.2.11. Скетч содержит почти все доступные команды для работы с таблицей Excel.

Загрузите скетч в плату Arduino. Откройте исходный шаблон файла Excel из комплекта поставки расширения. В поле Port введите номер последовательного порта, к которому подключена плата. Остальные настройки не меняйте. Нажмите кнопку Display direct debug в окне расширения. Затем нажмите кнопку Connect. Если все работает правильно, контроллер перезагрузится, и в окне отладки побегут строки команд и служебных сообщений, а таблица будет заполняться значениями.

Обратите внимание, что изменились подписи к флажкам. Поставьте флажок Quit at 450. Как только значение счетчика скетча достигнет 450 (или уже превысило 450 на момент установки флажка) Excel сохранит файл под новым именем и прекратит работу.

Откройте сохраненный файл и посмотрите содержимое листов. Во втором листе с именем Further list должна быть заполнена ячейка G11.

Листинг 5.5. Пример работы с расширением PLX–DAQ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
int i = 0;
 
void setup() {
 
// последовательный порт на скорости 9600
Serial.begin(9600);
//Serial.println("CLEARDATA"); // очистка листа со строки 2
Serial.println("CLEARSHEET"); // очистка листа со строки 1
// определяем пять столбцов с именами "Date", "Time", "Timer", "Counter" и "millis"
Serial.println("LABEL,Date,Time,Timer,Counter,millis");
// задаем подписи к трем флажкам (только латинские символы)
Serial.println("CUSTOMBOX1,LABEL,Stop logging at 250?");
Serial.println("CUSTOMBOX2,LABEL,Resume log at 350?");
Serial.println("CUSTOMBOX3,LABEL,Quit at 450?");
// ставим флажки в первое и второе поля
Serial.println("CUSTOMBOX1,SET,1");
Serial.println("CUSTOMBOX2,SET,1");
Serial.println("CUSTOMBOX3,SET,0");
}
 
void loop() {
// выводим в таблицу данные и команду прокрутки
Serial.println( (String) "DATA,DATE,TIME,TIMER," + i++ + "," + millis() + ",AUTOSCROLL_20" );
// альтернативный способ вывода строки по частям
/* Serial.print("DATA,DATE,TIME,TIMER,");
Serial.print(i++);
Serial.print(",");
Serial.println(millis());
Serial.print(",");
Serial.println("SCROLLDATA_20"); */
// стираем некоторые ячейки (прямоугольник от B10 до D20)
if (i == 100)
Serial.println("ClearRange,B,10,D,20");
// звуковой сигнал, если i==150
if (i == 150)
Serial.println("BEEP");
// читаем целое число из ячейки E4
// в листе с заданным именем если i==200
if (i == 200)
{
// запрашиваем данные из листа
Serial.println("CELL,GET,FROMSHEET,Further sheet,E,4");
// короткий вариант для чтения из текущего листа
// Serial.println("CELL,GET,E4");
// получаем ответ Excel
 
int readvalue = Serial.readStringUntil(10).toInt();
// Выводим значение в окно отладки
Serial.println( (String) "Value of cell E4 is: " + readvalue);
}
 
// проверяем значение CUSTOMBOX1
// если флажок установлен, приостанавливаем запись
if (i == 250)
{
Serial.println("CUSTOMBOX1,GET");
int stoplogging = Serial.readStringUntil(10).toInt();
// выводим сообщение в окно отладки
Serial.println( (String) "Value of stoplogging/checkbox is: " + stoplogging);
if (stoplogging)
Serial.println("PAUSELOGGING");
}
// запрашиваем случайное число из компьютера если i==300
if (i == 300)
{
 
Serial.println("GETRANDOM,-4321,12345");
 
// случайное число от -4321 до 12345
 
int rndseed = Serial.readStringUntil(10).toInt();
 
// выводим сообщение в окно отладки
Serial.println( (String) "Got random value '" + rndseed + "' from Excel" );
}
// теперь возвобновляем запись если i==350 и стоит флажок CUSTOMBOX2
if (i == 350)
{
Serial.println("CUSTOMBOX2,GET");
int resumelogging = Serial.readStringUntil(10).toInt();
if (resumelogging)
Serial.println("RESUMELOGGING");
}
// запись в заданную ячейку G10 текущего листа
// и ячейку G11 произвольного листа
if (i == 400)
{
 
// активный лист по умолчанию
Serial.println("CELL,SET,G10,400 test 1 string");
// лист с именем "Further sheet"
Serial.println("CELL,SET,ONSHEET,Further sheet,G,11,400 test 2");
}
 
// если i&gt;=450 и установлен флажок CUSTOMBOX3
// сохраняем файл под другим именем и закрываем Excel
if (i &gt;= 450)
 
{
Serial.println("CUSTOMBOX3,GET");
if (Serial.readStringUntil(10).toInt()) {
Serial.println("SAVEWORKBOOKAS,450-Lines-File");
Serial.println("FORCEEXCELQUIT");
}
else
Serial.println("No forced Excel quit requested!");
}
}
Опубликовано

Встречайте: “Программирование на VBA в Excel. Самоучитель”

Программирование на VBA в Excel . Самоучитель

Книга посвящена возможностям программирования на языке Visual Basic for Applications (VBA) в современном офисном приложении Microsoft Office Excel. Приведена информация о сервисах Power по работе с данными, новинках Excel 2021, в том числе о динамических массивах и функциях для работы с ними. Даны теоретические сведения о программировании, элементах объектной модели Excel, запуске и отладке макросов. Рассмотрены вопросы автоматизации рабочего листа при помощи элементов управления Excel. Описаны приемы создания макросов, пользовательских функций и форм в редакторе Visual Basic. Приведены способы взаимодействия при помощи VBA с другими программами пакета Microsoft Office. Для закрепления материала рассмотрены примеры пользовательских приложений в виде листингов программ с анализом и поясняющими комментариями. В приложениях содержатся глоссарии с основными терминами VBA и редактора Visual Basic VBE.

Файлы рабочих книг с поддержкой макросов для каждой главы размещены на сайте издательства.

  • Основы VBA для Excel и настройки безопасности
  • Новинки Excel 2021 и службы Power
  • Объекты, методы, свойства, события
  • Макросы: программирование, запуск и отладка
  • Функции, определенные пользователем
  • Работа с ячейками, датами и временем
  • Динамические массивы в Excel и VBA
  • Графические элементы и диаграммы средствами VBA
  • Создание пользовательских форм, диалоговых окон, сообщений
  • Автоматизация рабочего листа: элементы управления формы и ActiveX

Книгу “Программирование на VBA в Excel. Самоучитель” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Введение………………………………………………………………………………………………… 11

Язык VBA……………………………………………………………………………………………………………………………………. 11

Нововведения Excel 2021 и службы Power……………………………………………………………………………… 11

Совместное редактирование рабочей книги……………………………………………………………………. 12

Службы Power……………………………………………………………………………………………………………………. 12

Динамические массивы……………………………………………………………………………………………………… 17

Новые функции в Excel 2021……………………………………………………………………………………………… 19

Оператор неявного пересечения……………………………………………………………………………………….. 20

Зачем нужен VBA в Excel 2021?……………………………………………………………………………………………….. 21

Объектно-ориентированное программирование…………………………………………………………………….. 22

Общие положения………………………………………………………………………………………………………………. 22

Объект…………………………………………………………………………………………………………………………………. 24

Объектная модель Microsoft Excel 2021…………………………………………………………………………………… 24

Объектная модель VBA……………………………………………………………………………………………………… 24

Объект Application……………………………………………………………………………………………………………… 25

Классы………………………………………………………………………………………………………………………………… 26

Свойства……………………………………………………………………………………………………………………………… 26

Методы……………………………………………………………………………………………………………………………….. 27

События………………………………………………………………………………………………………………………………. 28

Глава 1. Основные понятия VBA…………………………………………………………… 31

Базовые конструкции языка Visual Basic…………………………………………………………………………………. 31

Типы данных в VBA…………………………………………………………………………………………………………… 32

Константы и переменные, переменные объектов……………………………………………………………. 34

Область действия переменных и констант……………………………………………………………… 34

Объявление констант и переменных……………………………………………………………………….. 35

Начало работы………………………………………………………………………………………………………………………….. 35

Настройка безопасности…………………………………………………………………………………………………………… 39

Запись макроса………………………………………………………………………………………………………………………….. 41

Имя макроса……………………………………………………………………………………………………………………….. 41

Разработка проекта…………………………………………………………………………………………………………………… 42

Создание модуля……………………………………………………………………………………………………………………….. 44

Создание модуля с помощью контекстно-зависимого меню………………………………………….. 45

Окно кода……………………………………………………………………………………………………………………………. 45

Оператор Option Explicit…………………………………………………………………………………………………… 46

Первая процедура……………………………………………………………………………………………………………………… 47

Объявление переменной в VBA…………………………………………………………………………………………. 48

Оператор Debug.Print………………………………………………………………………………………………………… 49

Автоматический ввод атрибутов команд…………………………………………………………………………. 51

Структура кода процедуры………………………………………………………………………………………………………. 52

Метод Worksheets.Activate…………………………………………………………………………………………………. 53

Активная ячейка ActiveCell……………………………………………………………………………………………….. 53

Открытие книги с макросом………………………………………………………………………………………………. 55

Ввод данных……………………………………………………………………………………………………………………….. 56

Оператор With…………………………………………………………………………………………………………………….. 57

Свойство Selection……………………………………………………………………………………………………………… 58

Свойство Orientation………………………………………………………………………………………………………….. 59

Объект Range………………………………………………………………………………………………………………………. 60

Кнопка (элемент управления ActiveX)……………………………………………………………………………… 61

Свойство Offset…………………………………………………………………………………………………………………… 62

Функция Environ…………………………………………………………………………………………………………………. 63

Функция MsgBox…………………………………………………………………………………………………………………. 64

Константы табуляции Chr(9) и перевода строки Chr(10)………………………………………………. 66

Диалоговое окно, создаваемое функцией InputBox………………………………………………………… 67

Переменная типа String……………………………………………………………………………………………………… 68

Переменная типа Long……………………………………………………………………………………………………….. 68

Переменная типа Byte………………………………………………………………………………………………………… 69

Методы Protect и Unprotect………………………………………………………………………………………………. 69

Запуск макроса при помощи нажатия сочетания клавиш……………………………………………………… 71

Как удалить модуль?…………………………………………………………………………………………………………………. 73

Глава 2. Основы программирования в VBA…………………………………………… 75

Ячейка и диапазон ячеек…………………………………………………………………………………………………………… 75

Арифметические выражения…………………………………………………………………………………………………….. 76

Правила записи арифметических выражений…………………………………………………………………. 77

Арифметические выражения в ячейке………………………………………………………………………………. 77

Арифметические выражения с ячейками………………………………………………………………………….. 78

Обрамление ячейки — метод BorderAround……………………………………………………………………………. 79

Оператор With……………………………………………………………………………………………………………………………. 80

Вложенные операторы With……………………………………………………………………………………………………… 81

Генерация случайных чисел СЛЧИС()……………………………………………………………………………………. 82

Генерация динамического массива случайных чисел RandArray………………………………………… 83

Перевод градусов по Фаренгейту в градусы по Цельсию……………………………………………………… 84

Замена значений формул числом…………………………………………………………………………………………….. 85

Работа с цветом………………………………………………………………………………………………………………………….. 88

Функция RGB………………………………………………………………………………………………………………………. 88

Свойства Color и ColorIndex…………………………………………………………………………………………….. 89

Свойство Color………………………………………………………………………………………………………….. 89

Свойство ColorIndex…………………………………………………………………………………………………. 90

Палитра цветов…………………………………………………………………………………………………………. 93

Подсчет цветов в рисунке…………………………………………………………………………………………. 95

Заливка ячейки цветом……………………………………………………………………………………………… 98

Защита ячеек рабочего листа от форматирования……………………………………………….. 99

Выделение ячеек по цветовому соответствию в диапазоне………………………………… 101

Заливка строк с заданным шагом………………………………………………………………………….. 102

Выделение миганием………………………………………………………………………………………………. 103

Календарь……………………………………………………………………………………………………………….. 105

Заливка ячеек, содержащих формулы………………………………………………………………….. 106

Подсветка минимального и максимального значений………………………………………… 108

Цветовая шкала………………………………………………………………………………………………………. 109

Глава 3. Логические операторы……………………………………………………………. 111

Оператор If…Then…Else…………………………………………………………………………………………………………… 111

Операторы сравнения……………………………………………………………………………………………………………… 111

Неполная форма оператора If…Then……………………………………………………………………………… 113

Полная форма оператора If…Then…Else………………………………………………………………………… 114

Оператор ElseIf…………………………………………………………………………………………………………………. 114

Вложенные логические операторы………………………………………………………………………………………… 115

Примеры использования логических операторов………………………………………………………………… 116

Свойство Name…………………………………………………………………………………………………………………. 116

Свойство Value…………………………………………………………………………………………………………………. 116

Функции IsEmpty и IsNumeric…………………………………………………………………………………………… 117

Свойство Range.HasFormula…………………………………………………………………………………………… 117

Переход к ячейке A2021………………………………………………………………………………………………….. 118

Пример с оператором Case……………………………………………………………………………………………… 119

Функция InputBox…………………………………………………………………………………………………………….. 121

Оператор GoTo…………………………………………………………………………………………………………………. 122

Проверка существования файла…………………………………………………………………………………….. 123

Глава 4. Операторы цикла…………………………………………………………………… 125

Цикл For…To…Step…Next…………………………………………………………………………………………………………. 125

Цикл For…To…Next…………………………………………………………………………………………………………………… 126

Заполнение столбца………………………………………………………………………………………………………… 127

Заполнение столбца с большим шагом………………………………………………………………………….. 128

Отрицательный шаг…………………………………………………………………………………………………………. 128

Выход из цикла по условию……………………………………………………………………………………………. 129

Кнопка для запуска макроса (элемент управления формы)………………………………………………… 130

Вложенный цикл For…To…Next………………………………………………………………………………………. 131

Цикл For…Each…………………………………………………………………………………………………………………………. 133

Цикл Do…Loop………………………………………………………………………………………………………………………….. 134

Цикл While…Wend…………………………………………………………………………………………………………………….. 137

Время работы программы………………………………………………………………………………………………………. 138

Глава 5. Функции, определенные пользователем…………………………………. 145

Построение функций……………………………………………………………………………………………………………….. 145

График функции одной переменной……………………………………………………………………………….. 145

Структура кода функции пользователя…………………………………………………………………………. 146

График функции одной переменной (продолжение)…………………………………………………….. 146

Расчет функции одной переменной с использованием динамических массивов……….. 149

График кусочно-непрерывной функции с двумя условиями………………………………………… 150

Расчет кусочно-непрерывной функции с двумя условиями с использованием динамических массивов   153

График кусочно-непрерывной функции с тремя условиями………………………………………… 154

Расчет кусочно-непрерывной функции с тремя условиями с использованием динамических массивов   156

Названия формул на английском языке…………………………………………………………………………. 158

Пользовательская функция с тремя аргументами…………………………………………………………. 160

Создание собственной категории…………………………………………………………………………………………… 161

Функция без аргументов………………………………………………………………………………………………….. 163

Переименование рабочего листа……………………………………………………………………………………. 164

Функция с аргументом типа Range…………………………………………………………………………………. 165

Функция с массивом…………………………………………………………………………………………………………. 166

Формулы динамического массива………………………………………………………………………………….. 168

Функция с массивом в качестве аргумента……………………………………………………………………. 169

Вызов функции из процедуры…………………………………………………………………………………………. 171

Вызов процедуры, использующей функцию, из другой процедуры……………………………. 173

Запись названий формул…………………………………………………………………………………………………. 174

Вычисление определенного интеграла…………………………………………………………………………………. 176

Метод прямоугольников………………………………………………………………………………………………….. 177

Метод трапеций……………………………………………………………………………………………………………….. 177

Метод Симпсона………………………………………………………………………………………………………………. 177

Переключатели OptionButton…………………………………………………………………………………………………. 180

Глава 6. Пользовательская форма………………………………………………………… 183

Создание форм средствами VBA……………………………………………………………………………………………. 183

Форма UserForm………………………………………………………………………………………………………………………. 183

Семейство форм……………………………………………………………………………………………………………….. 184

Свойства формы……………………………………………………………………………………………………………….. 184

Разметочная сетка……………………………………………………………………………………………………………. 186

Методы формы…………………………………………………………………………………………………………………. 187

События формы………………………………………………………………………………………………………………… 187

Командная кнопка для показа формы……………………………………………………………………………. 188

Элементы управления……………………………………………………………………………………………………………… 190

Префиксы………………………………………………………………………………………………………………………….. 193

Элемент управления Label………………………………………………………………………………………………. 193

Элемент управления CommandButton……………………………………………………………………………. 196

Элемент управления TextBox………………………………………………………………………………………….. 199

Элементы управления OptionButton и Frame………………………………………………………………… 202

Ключевое слово Me………………………………………………………………………………………………………….. 205

Элемент управления ScrollBar……………………………………………………………………………………….. 206

Элемент управления ListBox…………………………………………………………………………………………… 210

Элемент управления ComboBox……………………………………………………………………………………… 213

Элемент управления Image……………………………………………………………………………………………… 216

Элемент управления SpinButton…………………………………………………………………………………….. 220

Элемент управления TabStrip…………………………………………………………………………………………. 224

Элементы управления CheckBox и MultiPage……………………………………………………………….. 228

Элемент управления RefEdit…………………………………………………………………………………………… 232

Элемент управления ToggleButton…………………………………………………………………………………. 235

Пользовательский элемент управления…………………………………………………………………………………. 237

Элементы управления формы…………………………………………………………………………………………………. 238

Элемент управления Полоса прокрутки……………………………………………………………………….. 239

Глава 7. Программирование объектов Shape, инфографики и фракталов 243

Типы объектов, свойства и методы семейства Shapes………………………………………………………….. 243

Тип объекта msoShapeRectangle (прямоугольник) с заливкой (Fill)……………………………. 244

Тип объекта msoConnectorCurve (соединительная линия)…………………………………………… 246

Метод AddConnector……………………………………………………………………………………………………….. 247

Метод Patterned……………………………………………………………………………………………………………….. 248

Рисование линии: метод AddLine……………………………………………………………………………………. 250

Тип объекта msoShapeSmileyFace…………………………………………………………………………………… 251

Свойство Name…………………………………………………………………………………………………………………. 252

Стрелка……………………………………………………………………………………………………………………………… 253

Метод FillFormat.OneColorGradient………………………………………………………………………………. 255

Текстовый фрейм……………………………………………………………………………………………………………… 255

Тип фигуры msoShapeHeart (сердце) с заливкой (Fill)………………………………………………….. 257

Метод Group…………………………………………………………………………………………………………………….. 258

Создание выноски с текстовым фреймом………………………………………………………………………. 259

Свойство ThreeD………………………………………………………………………………………………………………. 260

Частичное и полное удаление фигур……………………………………………………………………………… 262

Оператор Set…………………………………………………………………………………………………………………….. 264

Создание собственных элементов инфографики………………………………………………………………….. 265

Фракталы………………………………………………………………………………………………………………………………….. 267

Тип данных, определенный пользователем…………………………………………………………………… 268

Фракталы из треугольников……………………………………………………………………………………………. 269

Фракталы из многоугольников……………………………………………………………………………………….. 273

Фракталы из четырехугольников…………………………………………………………………………………… 275

Глава 8. Работа с ячейками и областями………………………………………………. 279

Объект Application…………………………………………………………………………………………………………………… 279

Свойства объекта Application…………………………………………………………………………………………. 279

Методы объекта Application…………………………………………………………………………………………… 280

Объект Range……………………………………………………………………………………………………………………………. 281

Адресация ячеек……………………………………………………………………………………………………………….. 281

Свойства объекта Range………………………………………………………………………………………………….. 282

Методы объекта Range……………………………………………………………………………………………………. 284

Объект Selection……………………………………………………………………………………………………………………….. 284

Объект Cell……………………………………………………………………………………………………………………………….. 284

Выделение нескольких областей……………………………………………………………………………………………. 284

Выделение последней ячейки в диапазоне……………………………………………………………………………. 286

Свойство Range.End………………………………………………………………………………………………………………… 287

Выделение ячеек с формулами……………………………………………………………………………………………….. 288

Выделение используемого диапазона данных……………………………………………………………………… 290

Форматирование объединенных ячеек………………………………………………………………………………….. 290

Выделение по условию……………………………………………………………………………………………………………. 292

Удаление символов из ячеек…………………………………………………………………………………………………… 293

Убираем текст………………………………………………………………………………………………………………………….. 294

Имена и фамилии……………………………………………………………………………………………………………………… 295

Метод Delete…………………………………………………………………………………………………………………………….. 297

Метод Clear……………………………………………………………………………………………………………………………… 298

Метод Application.Goto…………………………………………………………………………………………………………… 299

Скрытие данных………………………………………………………………………………………………………………………. 299

Копирование и специальная вставка…………………………………………………………………………………….. 299

Поиск минимума и максимума в диапазоне………………………………………………………………………….. 300

Поиск минимума и максимума в динамическом массиве…………………………………………………….. 301

Глава 9. Работа с данными…………………………………………………………………… 305

Массив из трех элементов………………………………………………………………………………………………………. 305

Динамический массив данных……………………………………………………………………………………………….. 308

Сравнение областей на одном листе……………………………………………………………………………………… 310

Сравнение областей на разных листах…………………………………………………………………………………. 311

Сортировка………………………………………………………………………………………………………………………………. 316

Сортировка диапазона данных………………………………………………………………………………………. 317

Сортировка областей (блоков)……………………………………………………………………………………….. 318

Простая сортировка блоков…………………………………………………………………………………… 319

Сортировка блоков с изменением ее условий………………………………………………………. 320

Сортировка по цвету……………………………………………………………………………………………………….. 322

Контроль автофильтра посредством VBA…………………………………………………………………………….. 325

Команда Итоги………………………………………………………………………………………………………………………… 325

Сортировка данных при помощи среза…………………………………………………………………………………. 328

Сводные таблицы PivotTable………………………………………………………………………………………………….. 332

Глава 10. Автоматизация диаграмм……………………………………………………… 337

Объектная модель диаграмм…………………………………………………………………………………………………… 337

Типы диаграмм…………………………………………………………………………………………………………………. 339

Свойства объекта Chart…………………………………………………………………………………………………… 342

Методы объекта Chart…………………………………………………………………………………………………….. 342

Первая диаграмма……………………………………………………………………………………………………………………. 343

Создание диаграммы с помощью VBA………………………………………………………………………….. 346

Коническая гистограмма…………………………………………………………………………………………………. 350

Печать диаграмм……………………………………………………………………………………………………………… 352

Удаление диаграммы………………………………………………………………………………………………………. 354

Форматирование параметров диаграммы…………………………………………………………………………….. 355

Форматирование цветов поверхности…………………………………………………………………………………… 357

Добавление линии тренда………………………………………………………………………………………………………. 359

Геолокация……………………………………………………………………………………………………………………………….. 363

Красивые узоры……………………………………………………………………………………………………………………….. 365

Глава 11. Программирование объектов и событий………………………………. 369

Где и как создаются процедуры обработки событий?…………………………………………………………. 370

Процедура для объекта ЭтаКнига…………………………………………………………………………………. 371

События, связанные с нажатием кнопок мыши…………………………………………………………………….. 372

Процедура в модуле………………………………………………………………………………………………………… 372

Событие для объекта Worksheet (Лист)………………………………………………………………………….. 373

Ключевое слово ByVal и параметр Target……………………………………………………………………… 374

Очистка ячейки…………………………………………………………………………………………………………………. 375

Свойства ScrollRow и ScrollColumn……………………………………………………………………………….. 376

События активации и деактивации………………………………………………………………………………………… 376

Свойство приложения ActiveWindow……………………………………………………………………………… 376

Активный лист………………………………………………………………………………………………………………….. 377

Число обращений к макросу…………………………………………………………………………………………… 378

Управление выделением области…………………………………………………………………………………… 379

События Activate и Deactivate рабочего листа……………………………………………………………… 379

Двойной щелчок левой кнопкой мыши…………………………………………………………………………… 380

Щелчок правой кнопкой мыши……………………………………………………………………………………….. 381

Введите пароль………………………………………………………………………………………………………………… 382

Событие закрытия книги…………………………………………………………………………………………………. 383

Событие сохранения книги……………………………………………………………………………………………… 384

Глава 12. Операторы даты и времени…………………………………………………… 385

Вывод даты и времени в окно Immediate оператором Debug.Print……………………………………… 385

Печать даты и времени с помощью функции CDate……………………………………………………………… 386

Функции DateSerial и TimeSerial…………………………………………………………………………………………….. 387

Текущие дата и время……………………………………………………………………………………………………………… 387

Текущие дата и время с учетом минут и секунд……………………………………………………………………. 388

Функция Weekday — день недели…………………………………………………………………………………………… 388

Функция Format……………………………………………………………………………………………………………………….. 389

Функция DateDiff……………………………………………………………………………………………………………………… 391

Функция DatePart…………………………………………………………………………………………………………………….. 391

Функция WeekdayName……………………………………………………………………………………………………………. 392

Вывод сообщения на 3 секунды……………………………………………………………………………………………… 393

Метод Application.OnTime………………………………………………………………………………………………………. 394

Автоматическое заполнение ячеек датами методом AutoFill……………………………………………… 395

Подсветка даты………………………………………………………………………………………………………………………… 397

Поиск даты……………………………………………………………………………………………………………………………….. 398

Календарь………………………………………………………………………………………………………………………………… 400

Календарь по месяцам…………………………………………………………………………………………………………….. 402

Календарь по неделям…………………………………………………………………………………………………………….. 405

Определение возраста…………………………………………………………………………………………………………….. 409

Глава 13. Действия с рабочей книгой…………………………………………………… 411

Свойства объекта Workbook…………………………………………………………………………………………………… 411

Методы объекта Workbook……………………………………………………………………………………………………… 412

Событие и метод Open…………………………………………………………………………………………………………….. 413

Открытие рабочей книги методом Workbooks.Open……………………………………………………… 414

Свойство Application.Dialogs для работы со встроенными диалоговыми окнами……. 415

Открытие рабочей книги в диалоговом окне…………………………………………………………………. 416

Открытие приложения Блокнот……………………………………………………………………………………………… 418

Свойство Workbook.Name……………………………………………………………………………………………………….. 419

Создание рабочей книги…………………………………………………………………………………………………………. 420

Имя приложения………………………………………………………………………………………………………………………. 420

Сохранение рабочей книги…………………………………………………………………………………………………….. 422

Метод Workbook.Save………………………………………………………………………………………………………. 422

Метод Workbook.SaveAs………………………………………………………………………………………………….. 422

Метод Workbook.SaveCopyAs………………………………………………………………………………………….. 425

Сохранение всех книг и выход из программы……………………………………………………………….. 426

Сохранение всех книг и выход по запросу……………………………………………………………………. 426

Защита рабочей книги методом Workbook.Protect……………………………………………………….. 427

Объект Worksheet……………………………………………………………………………………………………………………… 427

Свойства объекта Worksheet…………………………………………………………………………………………… 428

Методы объекта Worksheet и семейства Worksheets…………………………………………………….. 428

Защита рабочего листа методом Worksheet.Protect……………………………………………………… 428

Деление рабочего листа на страницы для печати……………………………………………………………….. 432

Глава 14. Файловые операции……………………………………………………………… 435

Форматы файлов Microsoft Excel……………………………………………………………………………………………. 435

Метод CreateTextFile для объекта FileSystemObject…………………………………………………………….. 436

Список файлов указанной папки……………………………………………………………………………………………. 437

Режим доступа Input/Output……………………………………………………………………………………………………. 438

Файлы из Application.AddIns…………………………………………………………………………………………………… 440

Объект FileDialog…………………………………………………………………………………………………………………….. 442

Функция GetAttr……………………………………………………………………………………………………………………….. 444

Документирование информации о файле………………………………………………………………………………. 445

Проверка существования файла…………………………………………………………………………………………….. 447

Оператор Kill для удаления файла………………………………………………………………………………………… 448

Оператор FileCopy для копирования файла…………………………………………………………………………. 449

Переименование файла…………………………………………………………………………………………………………… 450

Перемещение файла………………………………………………………………………………………………………………… 450

Глава 15. Отладка программ и сообщения об ошибках………………………… 453

Возникновение ошибок……………………………………………………………………………………………………………. 453

Выявление и исправление ошибок…………………………………………………………………………………………. 454

Три окна для просмотра ошибок……………………………………………………………………………………………. 456

Окно просмотра Immediate………………………………………………………………………………………………. 456

Окно Locals……………………………………………………………………………………………………………………….. 458

Окно наблюдения Watches………………………………………………………………………………………………. 459

Объект Err…………………………………………………………………………………………………………………………………. 462

Оператор On Error…………………………………………………………………………………………………………………… 462

Оператор On Error Resume Next………………………………………………………………………………………. 463

Оператор On Error GoTo: вариант 1………………………………………………………………………………. 464

Оператор On Error GoTo: вариант 2………………………………………………………………………………. 465

Константы xlDisabled и xlInterrupt свойства Application.EnableCancelKey………………. 466

Массив листов………………………………………………………………………………………………………………….. 467

Команда меню Debug………………………………………………………………………………………………………………. 468

Глава 16. Программирование связей……………………………………………………. 471

Гиперссылки…………………………………………………………………………………………………………………………….. 471

Кнопка гиперссылки………………………………………………………………………………………………………………… 473

Передача данных из Excel в Word………………………………………………………………………………………….. 475

Внедрение документа Word в Excel……………………………………………………………………………………….. 475

Передача данных из Excel в PowerPoint…………………………………………………………………………………. 477

Передача данных из PowerPoint в Excel…………………………………………………………………………………. 479

Приложение 1. Глоссарий терминов Visual Basic for Applications………….. 481

Приложение 2. Глоссарий терминов Visual Basic Editor………………………… 485

Приложение 3. Описание электронного архива……………………………………. 501

Предметный указатель…………………………………………………………………………. 503

Комолова Нина Владимировна, кандидат технических наук, доцент. Автор 17 книг, среди которых “Компьютерная верстка и дизайн”, “Adobe Photoshop CS4-CC для всех“, “Самоучитель CorelDRAW X3-X8“, “Программирование на VBA в Excel 2016/2019“, а также более 50 статей в журналах и сборниках.

 

Яковлева Елена Сергеевна, кандидат технических наук, автор книг “Adobe Photoshop CS4-CC для всех“, “Самоучитель CorelDRAW X8“, “Самоучитель Skype. Бесплатная связь через Интернет”, “3D-графика и видео в Photoshop CS4 Extended”, “Программирование на VBA в Excel 2016” и 30 статей в журналах и сборниках.
Опубликовано

Новинка: “Python для Excel”

Python для Excel

Книга посвящена автоматизации Excel с помощью языка программирования Python. Описаны дистрибутив Anaconda Python и современные средства разработки, такие как менеджеры пакетов Conda и pip, блокноты Jupyter и Visual Studio Code. Даны необходимые основы языка Python и введение в анализ данных с помощью библиотеки pandas. Приведены приемы чтения и записи файлов Excel без Excel. Рассмотрено программирование приложений Excel с помощью популярного пакета с открытым исходным кодом xlwings: автоматизация Excel, инструменты на основе технологии Python, трекер пакетов Python, а также функции, определяемые пользователем.

Электронный архив на сайте издательства содержит цветные иллюстрации к книге.

Для опытных пользователей Excel  и программистов

Современная среда для автоматизации и анализа данных

Excel — это самый популярный в мире табличный редактор, но его язык автоматизации VBA давно перестал развиваться. Python – самый востребованный язык программирования, он хорошо работает с данными и прекрасно подходит на роль языка сценариев Excel. Вот почему сочетание Excel и Python актуально и  привлекательно.

В книге показано, как эффективно интегрировать эти два мира и начать работу по автоматизации Excel с помощью Python. При этом знание Python приветствуется, но не обязательно, так как в книге есть введение во все используемые инструменты, включая вводный курс по языку Python.

  • Освойте работу с современными инструментами, включая блокноты Jupyter и Visual Studio Code.
  • Используйте pandas для сбора, очистки и анализа данных и замены типичных вычислений в Excel.
  • Автоматизируйте рутинные задачи, такие как объединение рабочих книг Excel и создание отчетов Excel.
  • Используйте xlwings для создания интерактивных инструментов Excel, использующих Python в качестве механизма вычислений.
  • Подключайте Excel к базам данных и файлам CSV и получайте данные из Интернета с помощью кода Python.
  • Используйте Python как единый инструмент для замены VBA, Power Query и Power Pivot.

Книгу “Python для Excel” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Предисловие. 11

Почему я написал эту книгу. 12

Кому адресована эта книга. 12

Структура книги. 13

Версии Python и Excel 14

Условные обозначения, используемые в этой книге. 15

Примеры использования кода. 15

Иллюстрации. 16

Онлайн-обучение O’Reilly. 17

Как с нами связаться. 17

Благодарности. 17

Часть I. Введение в Python.. 19

Глава 1. Зачем нужен Python для Excel?. 21

Excel как язык программирования. 22

Excel в новостях. 23

Передовые методы программирования. 24

Современный Excel 29

Python для Excel 31

Читабельность и эксплуатационная пригодность. 31

Стандартная библиотека и менеджер пакетов. 32

Научные вычисления. 34

Особенности современного языка. 35

Кросс-платформенная совместимость. 36

Заключение. 36

Глава 2. Среда разработки. 38

Дистрибутив Anaconda Python. 39

Установка. 39

Anaconda Prompt 40

Python REPL: интерактивная сессия Python. 43

Менеджеры пакетов: Conda и pip. 44

Среды Conda. 46

Jupyter Notebooks. 47

Запуск блокнотов Jupyter 48

Ячейки блокнота. 49

Режим редактирования и командный режим.. 51

Порядок выполнения имеет значение. 52

Завершение работы блокнотов Jupyter 52

Visual Studio Code. 53

Установка и настройка. 55

Запуск скрипта на Python. 57

Заключение. 61

Глава 3. Приступая к работе с Python. 63

Типы данных. 63

Объекты.. 64

Числовые типы.. 65

Логический тип данных. 67

Строки. 69

Индексирование и нарезка. 70

Индексирование. 70

Нарезка (Slicing) 71

Структуры данных. 72

Списки. 72

Словари. 75

Кортежи. 76

Множества. 77

Управление потоком.. 78

Блоки кода и оператор pass. 78

Оператор if и условные выражения. 79

Циклы for и while. 80

Анализ списков, словарей и множеств. 83

Организация кода. 84

Функции. 84

Модули и инструкция по импорту. 86

Класс datetime. 88

PEP 8: Руководство по стилю для кода Python. 90

PEP 8 и VS Code. 92

Подсказки по типам.. 93

Заключение. 94

Часть II. Введение в pandas. 95

Глава 4. Основы NumPy. 97

Начало работы с NumPy. 97

Массив NumPy. 97

Векторизация и транслирование. 99

Универсальные функции (ufunc) 101

Создание и манипулирование массивами. 102

Получение и установка элементов массива. 102

Полезные конструкторы массива. 103

Представления и копирование. 103

Заключение. 104

Глава 5. Анализ данных с помощью pandas. 105

DataFrame и Series. 105

Индекс. 108

Столбцы.. 110

Манипулирование данными. 111

Выбор данных. 111

Изменение данных. 117

Отсутствующие данные. 120

Дубликаты данных. 122

Арифметические операции. 123

Работа с текстовой колонкой. 125

Использование функции. 126

Просмотр и копирование. 127

Объединение DataFrames. 127

Объединение. 128

Объединение и слияние. 129

Описательная статистика и агрегация данных. 132

Описательная статистика. 132

Группировка. 133

Pivoting и Melting. 134

Построение графиков. 135

Matplotlib. 135

Plotly. 137

Импорт и экспорт DataFrames. 140

Экспорт CSV файлов. 141

Импорт CSV-файлов. 142

Заключение. 144

Глава 6. Анализ временны́х рядов с помощью pandas. 145

DatetimeIndex. 146

Создание DatetimeIndex. 146

Фильтрация DatetimeIndex. 148

Работа с часовыми поясами. 150

Общие манипуляции с временны́ми рядами. 151

Смещение и процентные изменения. 151

Пересчет и корреляция. 153

Повторная выборка. 156

Скользящее окно. 157

Ограничения при работе с pandas. 158

Заключение. 159

Часть III. Чтение и запись файлов Excel без Excel. 161

Глава 7. Манипулирование файлами Excel с помощью pandas. 163

Тематическое исследование: отчетность в Excel 163

Чтение и запись файлов Excel с помощью pandas. 167

Функция read_excel и класс ExcelFile. 167

Метод to_excel и класс ExcelWriter 173

Ограничения при работе pandas с файлами Excel 174

Заключение. 175

Глава 8. Манипулирование файлами Excel с помощью пакетов
reader и writer. 176

Пакеты reader и writer 176

В каких случаях какой пакет используется. 177

Модуль excel.py. 178

OpenPyXL. 180

XlsxWriter 184

pyxlsb. 186

xlrd, xlwt, and xlutils. 187

Работа с xlwt 189

Расширенный круг задач для reader и writer 190

Работа с большими файлами Excel 191

Форматирование данных в Excel 195

Тематическое исследование (повторное): отчетность в Excel 200

Заключение. 201

Часть IV. Программирование приложения Excel
с помощью xlwings. 205

Глава 9. Автоматизация Excel 205

Начало работы с xlwings. 206

Использование Excel в качестве средства просмотра данных. 206

Объектная модель Excel 208

Запуск кода VBA.. 215

Конвертеры, опции и коллекции. 216

Работа с DataFrames. 216

Конвертеры и опции. 217

Диаграммы, рисунки и определенные имена. 220

Случай из практики (повторный анализ): отчетность в Excel 223

Расширенные темы xlwings. 225

Основы xlwings. 225

Улучшение производительности. 227

Как действовать при отсутствии недостающих функций. 229

Заключение. 230

Глава 10. Инструменты Excel на основе технологии Python. 231

Использование Excel в качестве интерфейса xlwings. 231

Надстройка Excel 232

Команда Quickstart 233

Run Main. 234

Функция RunPython. 235

Развертывание. 240

Зависимости Python. 240

Автономные рабочие книги: избавление от надстройки xlwings. 241

Иерархия конфигурации. 242

Настройки. 243

Заключение. 244

Глава 11. Трекер пакетов Python. 245

Что мы будем создавать. 245

Основной функционал. 247

Web APIs. 248

Базы данных. 251

Исключения. 260

Структура приложения. 263

Внешний интерфейс. 264

Внутренний интерфейс. 268

Отладка. 271

Заключение. 273

Глава 12. Функции, определяемые пользователем (UDFs) 274

Начало работы с UDF. 274

UDF Quickstart 275

Тематическое исследование: Google Trends. 280

Введение в Google Trends. 280

Работа с DataFrames и динамическими массивами. 282

Получение данных из Google Trends. 287

Построение графиков с помощью UDF. 291

Отладка UDFs. 293

Дополнительные вопросы по UDF. 294

Базовая оптимизация производительности. 295

Кэширование. 297

Декоратор Sub. 299

Заключение. 301

Часть V. Приложения. 303

Приложение A. Среда Conda. 305

Создание новой среды Conda. 305

Отключение автоматической активации. 307

Приложение B. Расширенные функциональные возможности VS Code. 308

Отладчик. 308

Блокноты Jupyter в VS Code. 310

Запуск блокнотов Jupyter 310

Сценарии Python с ячейками кода. 311

Приложение C. Дополнительные концепции Python. 313

Классы и объекты.. 313

Работа с объектами datetime с учетом временной зоны.. 315

Изменяемые и неизменяемые объекты Python. 316

Вызов функций с изменяемыми объектами в качестве аргументов. 317

Функции с изменяемыми объектами в качестве аргументов
по умолчанию.. 319

Об авторе. 321

Обложка. 323

Предметный указатель. 325

 

Зумштейн Феликс

Феликс Зумштейн — создатель xlwings, популярного пакета с открытым исходным кодом, который позволяет автоматизировать Excel с помощью Python в Windows и macOS. Как генеральный директор компании xltrail и менеджер одноименной системы контроля версий для файлов Excel, он имеет глубокое представление о типичных случаях использования и проблемах с Excel в различных областях.

Опубликовано

Встречайте: “Excel для школьников. Практикум”

Excel для школьников. Практикум

Описание

Практическое пособие по использованию Excel для решения задач, типичных для разных сфер деятельности школьника. Двигаясь от задачи к задаче, читатель уясняет принципы работы электронных таблиц и осваивает нужные инструменты. Теория изложена просто, сопровождается примерами, авторскими рисунками, заданиями практикума. Ученики 8-9 классов научатся выполнять расчёты, оформлять таблицы по стандартам, строить диаграммы для презентаций, выполнять задания ОГЭ. Ученики 10-11 классов освоят решение задач ЕГЭ, выработают умение видеть за постановкой задачи структуры данных, что понадобится в будущем и программисту, и системному аналитику, и менеджеру. А в качестве бонуса смогут познакомиться с решением оптимизационных задач с помощью Excel.

Электронный архив на сайте издательства содержит необходимые для работы файлы.

Для школьников 8-11 классов, учащихся средних специальных учебных заведений  и преподавателей

Практическое пособие по использованию Excel для решения задач, типичных для разных сфер деятельности школьника.

Электронная таблица нужна сегодняшнему школьнику не только для ЕГЭ и ОГЭ. Эффективной работы с информацией требуют от него и повседневная жизнь, и хобби, и подработки. Excel — полезнейший универсальный инструмент, вполне доступный старшекласснику.

Первые четыре главы книги вполне покрывают повседневные потребности школьника: выполнить расчёты для проекта, оформить по стандартам таблицы в докладе, сделать убедительные диаграммы для презентации и, разумеется, выполнить задания ОГЭ.

Следующие три главы – это и уровень ЕГЭ, и выработка умения видеть за постановкой задачи структуры данных (а оно нужно и программисту, и системному аналитику, и менеджеру). Последняя глава демонстрирует одну из впечатляющих возможностей Excel — решение оптимизационных задач. Это уже уровень повыше школьного.

В каждой главе сначала на примере решения конкретных проблем излагается нужная теория, затем следует практикум — несколько разнообразных задач, решая которые, читатель сможет закрепить нужные навыки. Все необходимые для работы файлы есть в электронном архиве.

Книгу “Excel для школьников. Практикум” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Крылова Елена Геннадьевна – преподаватель Высшей инженерной школы Санкт-Петербургского Политехнического университета Петра Великого (Академия информатики для школьников), автор книг «Нескучная информатика: теория в историях, задачи, тесты, лайфхаки», «Python для детей, которые пока не программируют», курсов для детей и взрослых, организатор олимпиад по информатике и программированию, интеллектуальных игр, квестов. Сфера профессиональных интересов — методики обучения работе с информацией и программированию, адаптация образовательного контента к особенностям восприятия современных школьников.

Опубликовано

Новинка: Расширенная аналитика с PySpark

Расширенная аналитика с PySpark

Представляем книгу, которая посвящена практическим методам анализа больших объемов данных с использованием языка Python и фреймворка Spark, она знакомит с моделью программирования Spark и основами системы с открытым исходным кодом  PySpark. Каждая глава описывает отдельный аспект анализа данных, показаны основы обработки данных в PySpark и Python на примере очистки данных, подробно освещается машинное обучение с помощью Spark. Книга поможет читателю понять, как устроен и работает весь конвейер PySpark для комплексной аналитики больших наборов данных: от создания и оценки моделей до очистки, предварительной обработки и исследования данных с особым акцентом на производственные приложения. Отдельные главы посвящены обработке изображений и библиотеке Spark NLP.

Практические примеры анализа больших наборов данных с использованием Python и Spark

В современном мире накоплен ошеломляющий объем данных, и он продолжает расти. Один из основных инструментов анализа данных — Apache Spark, фреймворк с открытым исходным кодом для распределенной обработки неструктурированных и слабоструктурированных данных. Это практическое руководство объединяет Spark, статистические методы и наборы данных из реального мира. Авторы научат вас решать задачи анализа с помощью  системы с открытым исходным кодом PySpark, применяемой для распределенной обработки больших данных с использованием Python, а также других передовых методов программирования Spark.

Специалисты по обработке данных знакомят читателей с экосистемой Spark, а затем приводят примеры базовых методов анализа, включая классификацию, кластеризацию, совместную фильтрацию и обнаружение аномалий в таких областях, как геномика, безопасность и финансы. Отдельные главы посвящены обработке изображений и библиотеке Spark NLP.

Если у вас имеются базовые знания о машинном обучении и статистике, и вы программируете на Python, книга поможет вам освоить анализ больших данных.

  • Ознакомьтесь с моделью программирования и экосистемой Spark
  • Изучите общие подходы в науке о данных
  • Изучите практические примеры анализа больших наборов данных
  • Узнайте, какие инструменты машинного обучения подходят для решения конкретных задач
  • Напишите код, который можно адаптировать для многих целей

Книгу “Расширенная аналитика с PySpark” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Предисловие. 9

Почему мы написали эту книгу именно сейчас?. 9

Как устроена эта книга. 10

Условные обозначения, используемые в этой книге. 11

Использование примеров кода. 12

Благодарности. 12

ГЛАВА 1. Анализ больших данных. 15

Работа с большими данными. 16

Знакомство с Apache Spark и PySpark. 18

Компоненты Spark. 18

PySpark. 20

Экосистема. 21

Spark 3.0. 22

PySpark решает проблемы науки о данных. 23

Что дальше?. 24

ГЛАВА 2. Введение в анализ данных с помощью PySpark. 25

Архитектура Spark. 27

Установка PySpark. 28

Подготовка учебных данных. 30

Анализ данных с помощью API DataFrame. 36

Быстрая сводная статистика для фреймов данных. 40

Поворот и изменение формы фреймов данных. 42

Соединение фреймов данных и выбор признаков. 45

Функция оценивания и проверка модели. 46

Что дальше?. 48

ГЛАВА 3. Рекомендация музыки и набор данных Audioscrobbler. 49

Подготовка данных. 50

Наши требования к рекомендательной системе. 52

Альтернативный алгоритм наименьших квадратов. 55

Подготовка данных. 56

Создание первой модели. 59

Выборочная проверка рекомендаций. 63

Оценка качества рекомендаций. 65

Вычисление AUC.. 66

Выбор гиперпараметра. 68

Выдача рекомендаций. 70

Что дальше?. 72

ГЛАВА 4. Прогнозирование с помощью деревьев и лесов решений. 73

Деревья и леса решений. 74

Подготовка данных. 77

Наше первое дерево решений. 81

Гиперпараметры дерева решений. 88

Настройка деревьев решений. 90

Еще раз о категориальных признаках. 94

Случайные леса. 98

Получение прогнозов. 100

Что дальше?. 101

ГЛАВА 5. Обнаружение аномалий при помощи кластеризации
K-средних. 102

Кластеризация K-средних. 103

Выявление аномального сетевого трафика. 104

Набор данных Кубка KDD 1999 г. 105

Первый опыт кластеризации. 106

Выбор параметра k. 108

Визуализация с помощью SparkR.. 111

Нормализация признаков. 115

Категориальные переменные. 117

Использование меток с энтропией. 119

Кластеризация в действии. 120

Что дальше?. 122

ГЛАВА 6. Исследование Википедии с помощью LDA и Spark NLP. 123

Скрытое распределение Дирихле. 124

LDA в PySpark. 124

Получение данных. 125

Spark NLP. 126

Подготовка вашей среды.. 127

Парсинг данных. 128

Подготовка данных с использованием Spark NLP. 130

TF-IDF. 134

Вычисление TF-IDF. 135

Создание модели LDA.. 136

Что дальше?  139

ГЛАВА 7. Геопространственный и временнóй анализ данных
о поездках на такси. 140

Подготовка данных. 141

Преобразование строк даты и времени в метки времени. 143

Обработка недействительных записей. 146

Геопространственный анализ. 147

Введение в GeoJSON.. 147

GeoPandas. 149

Сессионизация в PySpark. 152

Создание сессий: вторичные сортировки в PySpark. 153

Что дальше?. 155

ГЛАВА 8. Оценка финансового риска. 157

Терминология. 158

Методы расчета VaR.. 159

Дисперсия-ковариация. 159

Ретроспективное моделирование. 159

Моделирование методом Монте-Карло. 159

Наша модель. 160

Получение данных. 161

Подготовка данных. 162

Определение весов факторов. 165

Выборка. 168

Многомерное нормальное распределение. 170

Испытание моделей. 171

Визуализация распределения доходов. 175

Что дальше?. 175

ГЛАВА 9. Анализ данных геномики и проект BDG.. 177

Разделение хранения и моделирования. 178

Установка ADAM.. 181

Введение в работу с геномными данными с использованием ADAM.. 182

Преобразование формата файла с помощью ADAM CLI 183

Получение геномных данных с помощью PySpark и ADAM.. 183

Прогнозирование сайтов связывания транскрипционных факторов на основе данных ENCODE  189

Что дальше?. 194

ГЛАВА 10. Обнаружение сходства изображений с помощью глубокого обучения и PySpark LSH   196

PyTorch. 197

Установка PyTorch. 197

Подготовка данных. 198

Изменение размера изображений с помощью PyTorch. 199

Модель глубокого обучения для векторного представления изображений. 200

Встраивание изображений. 200

Импорт встраиваний изображений в PySpark. 202

Поиск схожих изображений с использованием PySpark LSH.. 203

Поиск ближайшего соседа. 204

Что дальше?. 207

ГЛАВА 11. Управление жизненным циклом машинного обучения
с помощью MLflow.. 208

Жизненный цикл машинного обучения. 208

MLflow.. 210

Отслеживание экспериментов. 211

Использование MLflow Model 214

Создание и использование проектов MLflow.. 217

Что дальше?. 220

Об авторах. 221

Колофон. 222

Предметный указатель. 223

Акаш Тандон — cоучредитель и технический директор компании Looppanel. Ранее работал главным инженером по данным в компании Atlan,  специализирующейся на обработке данных и аналитике.

Сэнди Райза — ведущий разработчик проекта Dagster, облачного оркестратора для анализа данных,  и участник проекта Apache Spark.

Ури Ласерсон — учредитель и технический директор компании Patch Biosciences, специализирующей в области геномики и расшифровки ДНК. Ранее работал с большими данными в Cloudera, создателе дистрибутивов Apache Hadoop.

Шон Оуэн — главный архитектор решений, специализирующийся на машинном обучении и науке о данных в Databricks, компании по разработке корпоративного программного обеспечения, основанной создателями Apache Spark. Участник проекта Apache Spark.

Джош Уиллс — инженер-программист в компании WeaveGrid, развивающей «зеленые» технологии в сфере энергетики, и бывший руководитель отдела обработки данных в компании Slack Tecnologies, разработавшей одноименный корпоративный мессенджер .

Опубликовано

Погрузитесь в аналитику данных

Погружение в аналитику данных

В нашем издательстве вышла новая книга, в которой приводятся практические приемы анализа данных. Рассказано, как исследовать и тестировать взаимосвязи между переменными в Excel и использовать его для статистики и анализа. Описан перенос данных из Excel в R, язык программирования с открытым исходным кодом, специально разработанный для выполнения статистического анализа. Отдельный раздел посвящен переносу данных из Excel в Python и выполнению полного анализа данных средствами этого языка. В результате читатель научится выполнять разведочный анализ данных (Exploratory Data Analysis, EDA) и проверку гипотез с использованием языков программирования Python и R.

Аналитика данных может показаться сложной сферой, но если вы  опытный пользователь Excel, у вас есть уникальное преимущество. С помощью этого практического руководства пользователи Excel среднего уровня получат прочное понимание аналитики и стека данных. Прочитав эту книгу, вы сможете проводить исследовательский анализ данных и проверку гипотез с помощью языков программирования Python и R.

Исследование и проверка взаимосвязей — основа аналитики. Используя описанные инструменты и механизмы, вы освоите более продвинутые методы анализа данных. Джордж Маунт подробно объясняет ключевые статистические концепции с помощью электронных таблиц, а затем помогает применить полученные знания об обработке данных для написания программ на языках R и Python.

Эта практическая книга поможет вам:

Изучить основы аналитики в Excel.  Используйте Excel для проверки взаимосвязи между переменными, научитесь применять его возможности в статистике и аналитике.

Перейти от Excel к R.  Перенесите данные в R, язык программирования с открытым исходным кодом, специально разработанный для выполнения статистического анализа.

Перейти от Excel к Python.  Узнайте, как перенести информацию из Excel в Python, научитесь выполнять разведочный анализ, проверку гипотез, а также полный анализ данных средствами этого языка.

Джордж подробно рассказывает, что нужно сделать, чтобы перейти от Excel к науке о данных и аналитике.
Джордан Голдмайер, обладатель сертификата Microsoft Excel MVP

Эта книга – уникальное пособие, которое можно использовать и как справочник, и как учебник по бизнесу и аналитике данных.
Айден Джонсон, специалист по анализу данных и преподаватель

Книгу “Погружение в аналитику данных” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Предисловие…………………………………………………………………………………………….. 9

Цель обучения………………………………………………………………………………………………………………………………. 9

Предварительные условия………………………………………………………………………………………………………….. 9

Технические требования………………………………………………………………………………………………….. 9

Требования к предварительной подготовке…………………………………………………………………. 10

Как я пришел к аналитике…………………………………………………………………………………………………………. 10

«Excel — плохо, программирование — хорошо»……………………………………………………………………. 11

Преимущества Excel при обучении аналитике……………………………………………………………………….. 12

Обзор книги………………………………………………………………………………………………………………………………… 13

Упражнения в конце глав………………………………………………………………………………………………………….. 13

Эта книга — не список готовых решений………………………………………………………………………………… 14

Без паники!…………………………………………………………………………………………………………………………………. 14

Условные обозначения……………………………………………………………………………………………………………… 14

Использование примеров кода…………………………………………………………………………………………………. 15

Контакты…………………………………………………………………………………………………………………………………….. 16

Благодарности…………………………………………………………………………………………………………………………… 16

Часть I. Основы аналитики в Excel………………………………………… 17

Глава 1. Основы разведочного анализа данных…………………………………….. 19

Что такое разведочный анализ данных?…………………………………………………………………………………. 19

Наблюдения……………………………………………………………………………………………………………………. 21

Переменные…………………………………………………………………………………………………………………….. 21

Категориальные переменные………………………………………………………………………………… 22

Количественные переменные………………………………………………………………………………… 24

Закрепление материала: классификация переменных…………………………………………………………… 25

Резюме: типы переменных………………………………………………………………………………………………………… 27

Исследование переменных в Excel…………………………………………………………………………………………… 27

Исследование категориальных переменных……………………………………………………………….. 27

Исследование количественных переменных……………………………………………………………….. 30

Заключение………………………………………………………………………………………………………………………………… 41

Упражнения………………………………………………………………………………………………………………………………… 41

Глава 2. Понятие вероятности……………………………………………………………….. 42

Вероятность и случайность………………………………………………………………………………………………………. 42

Вероятность и выборочное пространство………………………………………………………………………………. 42

Вероятность и эксперименты……………………………………………………………………………………………………. 43

Безусловная и условная вероятность………………………………………………………………………………………. 43

Распределение вероятностей……………………………………………………………………………………………………. 43

Дискретное распределение вероятностей……………………………………………………………………. 44

Непрерывное распределение вероятностей…………………………………………………………………. 47

Заключение………………………………………………………………………………………………………………………………… 55

Упражнения………………………………………………………………………………………………………………………………… 55

Глава 3. Основы инференциальной статистики…………………………………….. 56

Базовые понятия статистического вывода………………………………………………………………………………. 56

Сбор данных для репрезентативной выборки……………………………………………………………… 57

Формулирование гипотез………………………………………………………………………………………………. 58

Разработка плана анализа…………………………………………………………………………………………….. 59

Анализ данных……………………………………………………………………………………………………………….. 62

Принятие решения………………………………………………………………………………………………………….. 64

Это ваш мир… данные только живут в нем……………………………………………………………………………… 71

Заключение………………………………………………………………………………………………………………………………… 72

Упражнения………………………………………………………………………………………………………………………………… 73

Глава 4. Корреляция и регрессия……………………………………………………………. 74

«Корреляция не подразумевает причинно-следственную связь»………………………………………….. 74

Понятие корреляции………………………………………………………………………………………………………………….. 75

От корреляции к регрессии…………………………………………………………………………………………….. 80

Линейная регрессия в Excel……………………………………………………………………………………………. 81

Переосмысление результатов: ложные зависимости……………………………………………………………… 87

Заключение………………………………………………………………………………………………………………………………… 88

Переход к программированию…………………………………………………………………………………………………. 89

Упражнения………………………………………………………………………………………………………………………………… 89

Глава 5. Стек анализа данных……………………………………………………………….. 90

Статистика, аналитика и наука о данных………………………………………………………………………………. 90

Статистика………………………………………………………………………………………………………………………. 90

Аналитика данных…………………………………………………………………………………………………………. 90

Бизнес-аналитика…………………………………………………………………………………………………………… 91

Наука о данных………………………………………………………………………………………………………………. 91

Машинное обучение………………………………………………………………………………………………………. 91

Различия без взаимоисключения…………………………………………………………………………………… 92

Значение стека анализа данных………………………………………………………………………………………………. 92

Электронные таблицы……………………………………………………………………………………………………. 93

VBA………………………………………………………………………………………………………………………….. 94

Современный Excel………………………………………………………………………………………………… 95

Базы данных……………………………………………………………………………………………………………………. 96

Платформы бизнес-аналитики (BI)……………………………………………………………………………….. 97

Языки программирования для анализа данных………………………………………………………….. 98

Заключение………………………………………………………………………………………………………………………………… 99

Что будет дальше…………………………………………………………………………………………………………………….. 100

Упражнения……………………………………………………………………………………………………………………………… 100

Часть II. От Excel к R……………………………………………………………………. 101

Глава 6. Первые шаги в R для пользователей Excel……………………………… 103

Загрузка R………………………………………………………………………………………………………………………………… 103

Начало работы с RStudio……………………………………………………………………………………………………….. 103

Пакеты в R………………………………………………………………………………………………………………………………… 112

Обновление R, RStudio и пакетов R……………………………………………………………………………………….. 114

Заключение………………………………………………………………………………………………………………………………. 114

Упражнения……………………………………………………………………………………………………………………………… 116

Глава 7. Структуры данных в R…………………………………………………………… 117

Векторы…………………………………………………………………………………………………………………………………….. 117

Индексирование и подмножества векторов…………………………………………………………………………… 119

От таблиц Excel к кадрам данных R………………………………………………………………………………………. 120

Импорт данных в R………………………………………………………………………………………………………………….. 122

Исследование кадра данных………………………………………………………………………………………………….. 126

Индексирование и подмножества кадров данных………………………………………………………………… 128

Запись кадров данных…………………………………………………………………………………………………………….. 129

Заключение………………………………………………………………………………………………………………………………. 130

Упражнения……………………………………………………………………………………………………………………………… 130

Глава 8. Обработка и визуализация данных в R………………………………….. 131

Обработка данных с помощью пакета dplyr…………………………………………………………………………. 131

Постолбцовые операции……………………………………………………………………………………………… 132

Построчные операции………………………………………………………………………………………………….. 135

Агрегирование и объединение данных………………………………………………………………………. 137

dplyr и оператор pipe (%>%)……………………………………………………………………………………….. 141

Преобразование данных с помощью tidyr…………………………………………………………………. 142

Визуализация данных с помощью ggplot2……………………………………………………………………………. 145

Заключение………………………………………………………………………………………………………………………………. 151

Упражнения……………………………………………………………………………………………………………………………… 151

Глава 9. Кульминация: R для анализа данных…………………………………….. 152

Разведочный анализ данных………………………………………………………………………………………………….. 153

Проверка гипотез……………………………………………………………………………………………………………………… 157

t-тест для независимых выборок…………………………………………………………………………………. 157

Линейная регрессия……………………………………………………………………………………………………… 159

Разделение и проверка данных для обучения и тестирования………………………………… 161

Заключение………………………………………………………………………………………………………………………………. 164

Упражнения……………………………………………………………………………………………………………………………… 164

Часть III. От Excel к Python………………………………………………………. 165

Глава 10. Первые шаги в Python для пользователей Excel……………………. 167

Загрузка Python……………………………………………………………………………………………………………………….. 167

Начало работы с Jupyter…………………………………………………………………………………………………………. 168

Модули в Python………………………………………………………………………………………………………………………. 176

Обновление Python, Anaconda и пакетов Python………………………………………………………. 178

Заключение………………………………………………………………………………………………………………………………. 178

Упражнения……………………………………………………………………………………………………………………………… 178

Глава 11. Структуры данных в Python…………………………………………………. 180

Массивы NumPy……………………………………………………………………………………………………………………….. 181

Индексирование и подмножества массивов NumPy……………………………………………………………… 182

Кадры данных Pandas…………………………………………………………………………………………………………….. 184

Импорт данных в Python…………………………………………………………………………………………………………. 185

Исследование кадра данных………………………………………………………………………………………………….. 187

Индексирование и подмножества кадров данных…………………………………………………….. 188

Запись кадров данных…………………………………………………………………………………………………. 189

Заключение………………………………………………………………………………………………………………………………. 189

Упражнения……………………………………………………………………………………………………………………………… 189

Глава 12. Обработка и визуализация данных в Python…………………………. 191

Постолбцовые операции…………………………………………………………………………………………………………. 192

Построчные операции…………………………………………………………………………………………………………….. 194

Агрегирование и объединение данных………………………………………………………………………………….. 195

Преобразование данных…………………………………………………………………………………………………………. 197

Визуализация данных……………………………………………………………………………………………………………… 199

Заключение………………………………………………………………………………………………………………………………. 203

Упражнения……………………………………………………………………………………………………………………………… 203

Глава 13. Кульминация: Python для анализа данных…………………………… 204

Разведочный анализ данных………………………………………………………………………………………………….. 205

Проверка гипотез……………………………………………………………………………………………………………………… 207

t-тест для независимых выборок…………………………………………………………………………………. 207

Линейная регрессия……………………………………………………………………………………………………… 208

Разделение и проверка данных для обучения и тестирования………………………………… 210

Заключение………………………………………………………………………………………………………………………………. 212

Упражнения……………………………………………………………………………………………………………………………… 212

Глава 14. Заключение и дальнейшие шаги…………………………………………… 213

Дополнительные элементы стека анализа данных………………………………………………………………. 213

План исследований и бизнес-эксперименты…………………………………………………………………………. 213

Дополнительные статистические методы……………………………………………………………………………… 214

Наука о данных и машинное обучение…………………………………………………………………………………. 214

Контроль версий………………………………………………………………………………………………………………………. 214

Этика…………………………………………………………………………………………………………………………………………. 215

Двигайтесь вперед и выбирайте то, что нравится………………………………………………………………… 215

Напутствие……………………………………………………………………………………………………………………………….. 216

Предметный указатель…………………………………………………………………………. 217

Об авторе……………………………………………………………………………………………… 221

Об изображении на обложке………………………………………………………………… 222

Джордж Маунт

Джордж Маунт  — основатель и генеральный директор  Stringfest Analytics, консалтинговой фирмы, специализирующейся на обучении и повышении квалификации в области аналитики данных, ранее работал с ведущими учебными платформами и компаниями в этой сфере. Джордж регулярно ведет блоги и выступает с докладами на темы обучения анализу данных.