Разведочный анализ данных
Jupyter Notebook
Jupyter Notebook
Установка Jupyter Notebook
Установка Jupyter Notebook
Установка Jupyter Notebook
Jupyter Notebook в сервисе Google Collaboratory
Запуск Jupyter Notebook
Рабочая папка Jupyter Notebook
Работа с файлом в Jupyter Notebook
Ячейки с программным кодом
Текстовые ячейки
Синтаксис разметки markdown
Синтаксис разметки markdown
Синтаксис разметки markdown
Синтаксис разметки markdown
Синтаксис разметки markdown
Синтаксис разметки markdown
Получение контекстной справки по функциям
Задание 1
Разведочный анализ данных
Разведочный анализ данных (Exploratory Data Analysis, EDA)
Разведочный анализ данных
Основные цели разведочного анализа данных
Понимание структуры данных
Типы признаков
Типы признаков
Типы признаков
Сбалансированность выборки
Наличие дубликатов и пропусков в данных
Наличие дубликатов и пропусков в данных
Наличие дубликатов и пропусков в данных
Библиотека NumPy
Библиотека NumPY
Массивы в Numpy
Важно!
Подключение библиотеки NumPy
Создание массива
Размерность и размеры массива
Атрибуты и Методы
Атрибуты и Методы
Атрибуты и Методы
Важно!
Массовые операции
Направления осей (axis)
Важно!
Библиотека PANDAS
Библиотека Pandas
Подключение библиотеки Pandas
Объекты Series и DataFrame
Создание объекта
Работа с элементами Series
Работа с элементами DataFrame
Работа с элементами DataFrame
Загрузка данных из разных источников
Файлы формата *.csv
Чтение данных из файла *.csv
Параметры функции pd.read_csv()
Пример с параметрами
Чтение из файла Excel (*.xlsx)
Параметры функции pd.read_excel()
Пример с параметрами
Чтение файла базы данных (*.db)
Параметры функции pd.read_sql()
Пример для SQLite:
Знакомимся с данными
Атрибуты и Методы
Типы колонок
Методы info() и describe()
Метод rename()
Применение вычислительных методов
Пропуски в данных
Подсчет значений
Поиск дубликатов
Сохранение в CSV-файл
Запись в *.csv
Параметры функции to_csv()
Пример с параметрами
Где брать данные для анализа?
Категории датасетов
Kaggle
Kaggle
Hugging Face
Российские статистические службы
Задание 2
2.26M
Category: programmingprogramming

04.+Razvedochny'j+analiz+danny'kh+(EDA)

1. Разведочный анализ данных

Подготовка данных для машинного обучения
Лекция 4 из 8
Кемерово 2026

2. Jupyter Notebook

Кафедра
Цифровых технологий
2

3. Jupyter Notebook

Jupyter Notebook — невероятно мощный инструмент для
интерактивной разработки и представления проектов в
области наук о данных.
Состоит из элементов форматированного текста с включением
фрагментов в формате HTML, рисунками, математическими
уравнениями и т.д.
Также является исполняемым документом, состоящим из блоков
кода на Python или других языках программирования.
Это клиент-серверное приложение. Приложение запускает сервер на
локальной машине и открывает интерфейс ноутбука в веб-браузере,
откуда его можно редактировать и запускать.
Сохраняется в виде файла ipynb и может быть экспортирован в файлы
html, pdf и LaTex.
Кафедра
Цифровых технологий
3

4. Установка Jupyter Notebook

• Проще всего начать работу с Jupyter Notebooks, установив
дистрибутив Anaconda
(https://www.anaconda.com/products/individual)
• Anaconda является очень широко используемым
дистрибутивом Python для работы с данными и поставляется
с предустановленными интерпретатором и наиболее
популярными библиотеками и инструментами.
Кафедра
Цифровых технологий
4

5. Установка Jupyter Notebook

• После установки Anaconda запустите Навигатор для начала
работы (можно запустить сразу Jupyter Notebook, и
пропустить следующий шаг)
• В окне Навигатора вы увидите табличку Jupyter Notebook.
Нажмите кнопку “Launch” для старта.
• Jupyter Notebook запустится в окне браузера, установленного
в системе по умолчанию
Кафедра
Цифровых технологий
5

6. Установка Jupyter Notebook

• Jupyter Notebook можно установить отдельно, без установки
пакета Anaconda. В этом случае необходимо заранее
установить интерпретатор языка Python самостоятельно.
• Далее в Windows необходимо:
1. Открыть командную строку, запустив из строки поиска
приложение с названием «cmd».
2. Ввести в командной строке команду
python -m pip install --upgrade pip
(произойдет обновление pip - утилиты-установщика пакетов)
3. Ввести в командной строке команду
python -m pip install jupyter
и дождаться завершения установки.
4. Проверить, что установка прошла успешно, можно с
помощью команды
jupyter notebook
Кафедра
Цифровых технологий
6

7. Jupyter Notebook в сервисе Google Collaboratory

• Сервис Google Collaboratory доступен для пользователей
через браузер бесплатно, необходимо только иметь
активный Google-аккаунт.
• На сайте google.com необходимо подключить приложение
Google Collaboratory (через Google Workspace Marketplace),
создать новый файл и начать работу.
• Интерфейс немного отличается, но все приемы работы с
кодовыми и текстовыми ячейками остаются такими же.
Кафедра
Цифровых технологий
7

8. Запуск Jupyter Notebook

Это панель инструментов ноутбука, специально
разработанная для управления ноутбуками Jupyter.
Можно представить ее как панель запуска.
Создать новый файл
Кафедра
Цифровых технологий
8

9. Рабочая папка Jupyter Notebook

• Первое, что бросается в глаза – список каких-то файлов и
папок. Это файлы и папки, хранящиеся в папке, которая
является рабочей по умолчанию (была выбрана при
установке).
• Если по отображающимся файлам непонятно, какая
папка является рабочей, это можно узнать, например,
создав новый ipynb-файл и исполнив следующие строки:
Кафедра
Цифровых технологий
9

10. Работа с файлом в Jupyter Notebook

• Файл состоит из «ячеек», которые можно заполнять
текстом (markdown) или кодом. Каждую ячейку
необходимо выполнить (кнопка Run).
• Рядом с кнопкой Run находится кнопка ▀, которая
останавливает выполнение кода в ячейке
Кнопка RUN
Кафедра
Цифровых технологий
10

11. Ячейки с программным кодом

• Каждая новая ячейка по умолчанию считается кодовой.
• Кодовая ячейка может содержать полную программу,
либо отдельные команды.
• После выполнения рядом с ячейкой “In” появится
порядковый номер, а ниже
неё – ячейка “Out” с
результатами работы кода.
• Значения переменных
сохраняются между
разными ячейками.
Кафедра
Цифровых технологий
11

12. Текстовые ячейки

• Для набора текста в текущей ячейке надо
переключиться в режим “Markdown” на панели
инструментов
• Markdown – облегчённый язык разметки, пригодный для
преобразования в языки для продвинутых публикаций
(HTML и др.).
• Окончательный внешний
вид текст примет после
нажатия на кнопку Run.
Кафедра
Цифровых технологий
12

13. Синтаксис разметки markdown

• Переход на новую строку внутри ячейки:
1. Два нажатия на клавишу Enter в конце первой строки
2. Для разрыва строки – два пробела + Enter в конце строки
3. Тэг <br/> в месте перехода на новую строку
• Форматирование текста:
*курсив*
**жирный**
***жирный курсив***
(тот же результат, если заменить знак * на знак _)
~~ зачеркнутый текст ~~
выделение `слова` внутри текста серой плашкой
встроенная документация в Jupyter Notebook: Help Markdown
Кафедра
Цифровых технологий
13

14. Синтаксис разметки markdown

• Заголовки (как в html. На их основе можно собрать оглавление):
#Заголовок 1 уровня
## Заголовок 2 уровня

###### Заголовок 6 уровня
• Гиперссылки:
1.Правильно оформленный адрес странички
(http://yandex.ru) превращается в гиперссылку
2.Гиперссылка в тексте:
Открыть [Яндекс](http://yandex.ru)
встроенная документация в Jupyter Notebook: Help Markdown
Кафедра
Цифровых технологий
14

15. Синтаксис разметки markdown

• Списки:
• Маркированные – знак “-”:
- Элемент 1
- Элемент 1.1
- Элемент 1.2
- Элемент 2
• Нумерованные:
1. Элемент 1
1. Элемент 1.1
1. Элемент 1.2
1. Элемент 2
встроенная документация в Jupyter Notebook: Help Markdown
Кафедра
Цифровых технологий
15

16. Синтаксис разметки markdown

• Изображения:
1.Картинка из Интернет:
![Замещающий
текст](https://31.img.avito.st/432x324/6156419331.jpg
"Текст при наведении курсора")
2.Картинка из файла (файл в текущей папке):
![Замещающий текст](logo_python.jpg "Текст при
наведении курсора")
встроенная документация в Jupyter Notebook: Help Markdown
Кафедра
Цифровых технологий
16

17. Синтаксис разметки markdown

• Блоки кода:
`
Блок кода, в котором
команды
не выполняются
`
или
```
Блок кода, в котором
команды
не выполняются
```
• Если после первого ``` указать язык, на котором написан
код, то включится подсветка синтаксиса:
```python
print(‘Hello’)
```
встроенная документация в Jupyter Notebook: Help Markdown
Кафедра
Цифровых технологий
17

18. Синтаксис разметки markdown

• Таблицы*:
| Column 1 | Column 2 | Column 3 |
|----------|----------|----------|
| Row 1 | Cell 2 | Cell 3 |
| Row 2 | Cell 5 | Cell 6 |
| Row 3 | Cell 8 | Cell 9 |
*) применение таблиц требует осторожности. Рекомендуется избегать
слишком большого количества колонок и не перегружать ячейки
содержимым.
встроенная документация в Jupyter Notebook: Help Markdown
Кафедра
Цифровых технологий
18

19. Получение контекстной справки по функциям

• В Jupyter Notebook комбинация клавиш:
− Windows и Linux: Shift + Tab
(при наведении курсора
на функцию)
− macOS: Option + Shift + Tab
• В Google Colaboratory всплывающее окно при
наведении курсора на
функцию. Можно нажать
гиперссылку «Открыть в новой
вкладке», чтобы посмотреть
подробное описание и
примеры использования
Кафедра
Цифровых технологий

20. Задание 1

Создайте файл *.ipynb, содержащий (каждая строка - в
отдельной ячейке):
• Название работы (заголовок 1 уровня):
• Имя, фамилия автора работы (заголовок 2 уровня);
• Группа, направление (заголовок 3 уровня);
• Следующие задания выполняйте в этом же файле для
оформления отчета. Используйте кодовые/текстовые
ячейки. Текстовые ячейки форматируйте по своему
усмотрению: используйте заголовки разного уровня,
жирный/курсивный/подчеркнутый шрифт, списки и т.д.).
• Обязательно используйте в тексте хотя бы 1 изображение, 1
гиперссылку, 1 блок кода, 1 таблицу.
Кафедра
Цифровых технологий
20

21. Разведочный анализ данных

Кафедра
Цифровых технологий

22. Разведочный анализ данных (Exploratory Data Analysis, EDA)

– процесс исследования и анализа наборов данных с
целью выявления:
• основных характеристик данных;
• закономерностей и взаимосвязей между
переменными (признаками);
• поиска аномалий и ошибок.
Этот этап является важным шагом перед более глубоким
статистическим анализом или построением моделей
машинного обучения.
Кафедра
Цифровых технологий

23. Разведочный анализ данных

помогает лучше понять данные и подготовиться к
дальнейшему исследованию, снижая риски
получения неверных выводов из-за
недостаточной подготовки исходных данных.
Кафедра
Цифровых технологий

24. Основные цели разведочного анализа данных

• Понимание структуры данных: определение типов данных,
диапазонов значений, сбалансированность выборки, наличие
дубликатов и пропусков в данных.
• Вычисление описательных статистических характеристик
признаков.
• Идентификация аномалий: обнаружение выбросов и
нестандартных наблюдений, которые могут исказить
результаты дальнейшего анализа.
• Выявление зависимостей: поиск корреляций и других связей
между различными переменными.
• Подготовка к моделированию: подготовка данных для
последующего использования в моделях машинного
обучения или статистических тестах.
Кафедра
Цифровых технологий

25. Понимание структуры данных

Кафедра
Цифровых технологий

26. Типы признаков

Количественные
• Числовые признаки: целое или дробное число.
Можно сравнивать, выполнять арифметические
операции, могут иметь множество различных
значений, различные единицы измерения.
Например:
− количество работников в компании,
− объём продаж за месяц,
− температура в цехе,
− процент сахара в ирисках.
Кафедра
Цифровых технологий

27. Типы признаков

Качественные
• Категориальные / номинальные: часто признак
нечисловой природы с конечным набором
значений. Частный случай – бинарные признаки –
принимают значения 0 и 1, которыми можно
закодировать принадлежность к категории
0 обычно закрепляют за более многочисленной
категорией
Особенности: нельзя сравнить значения, или произвести
какую-либо арифметическую операцию над ними.
Кафедра
Цифровых технологий

28. Типы признаков

Качественные
• Порядковые: имеют ограниченное число уникальных
значений, но при этом для них определен некий
порядок. Например:
− Размер одежды: XS, S, M, L, XL, XXL.
− Уровень образования: начальное, среднее, высшее.
Особенности: нельзя применить арифметические
операции, но значения можно сравнивать: например,
размер одежды L больше, чем M, а средний уровень
образования выше начального.
Кафедра
Цифровых технологий

29. Сбалансированность выборки

Характеристика набора данных, которая указывает на равномерное
распределение классов или категорий в выборке. В сбалансированных
наборах данных количество объектов каждого класса примерно
одинаково.
Это особенно важно в задачах классификации, где необходимо
предсказать принадлежность объекта к одному из нескольких классов.
Если классы распределены неравномерно (например, 90% данных
относятся к классу A, а остальные 10% — к классу B), модель может
обучиться предвзято, отдавая предпочтение большинству. Это
приводит к тому, что она хорошо классифицирует объекты
большинства класса, но плохо справляется с объектами меньшинства.
Кроме того, оценочные метрики при работе с несбалансированными
данными, такие как точность (accuracy), могут быть недостоверными.
Кафедра
Цифровых технологий

30. Наличие дубликатов и пропусков в данных

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

31. Наличие дубликатов и пропусков в данных

Работа с пропущенными значениями (missing values)
является важной частью предобработки данных.
Несколько основных методов работы с пропусками:
1. Удаление строк/столбцов:
Удалить строки с пропущенными данными (если их немного).
Удалить столбцы, если они содержат много пропусков и не
являются критичными для анализа.
Этот метод подходит, если потеря данных не сильно
повлияет на анализ, однако он может уменьшить размер
выборки.
Кафедра
Цифровых технологий

32. Наличие дубликатов и пропусков в данных

2. Замена на среднее/моду/медиану :
Для числовых признаков - например, заменить пропущенные
значения средним арифметическим всех имеющихся значений
этого признака (пропуски в столбце «Возраст» заменить средним
возрастом людей в выборке);
3. Заполнение наиболее частым значением:
Для категориальных переменных. Пропуски заменяются тем
значением, которое встречается чаще всего.
4. Интерполяция
Вычислить недостающие значения, используя линейную
интерполяцию между известными значениями. Подходит для
временных рядов.
5. Различные статистические методы
Кафедра
Цифровых технологий

33. Библиотека NumPy

Кафедра
Цифровых технологий
33

34. Библиотека NumPY

NumPy (сокращенно от Numerical Python) - это
открытая бесплатная Python-библиотека для
работы с многомерными массивами.
NumPy чаще всего используют в анализе данных и
обучении нейронных сетей - в каждой из этих
областей нужно проводить много вычислений с
большими массивами данных.
Кафедра
Цифровых технологий
34

35.

• Чистый Python не предназначен для написания быстрых программ.
Это интерпретируемый язык, поэтому программы на Python
выполняются медленнее аналогов на C, C++ или Fortran.
• С другой стороны, математики, физики, биологи и инженеры часто
применяют Python для решения вычислительных задач.
• Нет ли тут противоречия? Как интерпретируемый язык может быть
эффективен в вычислительной математике?
• Python отлично подходит на роль промежуточной среды, оболочки,
«клея» между библиотеками, написанными на разных языках.
• Numpy - одна из наиболее фундаментальных библиотек Python для
работы с вычислительной математикой.
• Многие другие пакеты для работы с данными и вычислениями
используют базовые объекты этой библиотеки. В числе таких
пакетов OpenCV - открытая библиотека для работы с
распознаванием образов, и Pandas - библиотека, ориентированная
на анализ данных.
Кафедра
Цифровых технологий
35

36. Массивы в Numpy

• Основной объект в Numpy - многомерный
массив.
• В чистом Python нет типа данных
с именем «массив», и его
приходится моделировать
с помощью списков.
• Но в Numpy для типа «массив»
есть объект array.
Кафедра
Цифровых технологий
36

37. Важно!

• В Numpy элементы одного массива должны быть
однородны (т.е. одного типа). Это самое важное отличие
массивов от списков (в списках можно хранить объекты
разного типа).
• Сравнение массивов и списков:
массивы используют меньше памяти, чем списки;
массивы обладают значительно большей
функциональностью;
массивы требуют, чтобы данные были
однородными, списки - нет.
Кафедра
Цифровых технологий
37

38. Подключение библиотеки NumPy

import numpy as np
Стандартное название (“numpy") заменяется на
его сокращение ("np").
В дальнейшем в коде будем пользоваться этим
сокращенным названием библиотеки.
Кафедра
Цифровых технологий
38

39. Создание массива

Создание массива - метод array(). В качестве
исходных данных можно использовать различные
объекты Python.
Например,
• создание массива из списка:
a = np.array([1, 4, 10, 34])
• из диапазона:
b = np.array(range(10))
• из итератора с помощью функции fromiter():
c = np.fromiter(map(int, ["1", "2", "3",
"4"]), dtype=np.int8)
• И т.д.
Кафедра
Цифровых технологий
39

40. Размерность и размеры массива

Можно узнать
командой
shape:
Кафедра
Цифровых технологий
40

41. Атрибуты и Методы

Атрибуты – свойства, связанные с объектом. Их значение
сохранено и не вычисляется при вызове.
Методы являются функциями, связанными с объектом. То
есть они производят какие-то преобразования с объектом
в момент обращения к ним.
• Атрибут ndim - определяет количество измерений
массива (одномерный, двухмерный и т.д.).
• Атрибут shape - кортеж, который описывает размер по
каждому измерению:
Кафедра
Цифровых технологий
41

42. Атрибуты и Методы

• Атрибут dtypes – определяет тип данных в массиве.
• Типы данных NumPy:
• np.int64
• np.float32
• np.complex
• np.bool
• np.object
• np.string_
• np.unicode_
// 64-битовое целое число
// вещественное число
// комплексное число
// логический тип (True или False)
// тип “object”
// строковый тип
// строка символов Unicod`а
Кафедра
Цифровых технологий
42

43. Атрибуты и Методы

• Метод reshape()
Массивы можно переформировать при помощи метода,
который задает новый многомерный массив. Например,
переформатировать одномерный массив из 12 элементов в
двумерный массив из 4 строк и 3 столбцов:
Кафедра
Цифровых технологий
43

44. Важно!

• Самое главное - при использовании функции
reshape() произведение ее параметров (т.е.
новые размеры массива) должно быть равно
количеству элементов в массиве.
• Иначе получим ошибку.
Кафедра
Цифровых технологий
44

45. Массовые операции

• В них вся суть. Ускорение, по сравнению с чистым
Python, достигается за счет замены цикла обработки в
Python вызовом одной функции, внутри которой
находится уже скомпилированный машинный цикл.
• Например, математические функции работают
поэлементно над массивами, только надо использовать
их версии из библиотеки NumPy, а не из стандартной
библиотеки Python:
Кафедра
Цифровых технологий
45

46. Направления осей (axis)

При применении определенных функций NumPy, таких как mean(),
max() и т.д. мы можем указать, по какой оси мы хотим вычислять
значения.
• Для axis=0 это означает, что мы применяем функцию к каждому
«столбцу» или ко всем значениям, которые встречаются по
вертикали.
• Для axis=1 это означает, что мы применяем функцию к каждой
«строке» или ко всем значениям по горизонтали.
Кафедра
Цифровых технологий
46

47. Важно!

• Получить справку по любой функции NumPy
можно с помощью метода info():
np.info(np.len)
• Официальная документация библиотеки NumPy
находится на сайте https://numpy.org/doc/stable/
С помощью NumPy можно реализовывать
значительную часть вычислений, избавляясь от циклов
в Python и ускоряя вычисления. Массивы Numpy - одна
из самых востребованных структур в вычислительной
математике.
Кафедра
Цифровых технологий
47

48. Библиотека PANDAS

Кафедра
Цифровых технологий
48

49. Библиотека Pandas

• Pandas (Panel Datas – панельные данные) используемые в социальных науках и эконометрике
многомерные данные, получаемые серией измерений
или наблюдений за несколько периодов времени для
одних и тех же компаний или людей.
• Работа pandas с данными строится поверх библиотеки
NumPy, являющейся инструментом более низкого
уровня.
• Pandas прежде всего предназначен для очистки и
первичной оценки данных по общим показателям,
например среднему значению, квантилям и так далее.
Кафедра
Цифровых технологий
49

50. Подключение библиотеки Pandas

import pandas as pd
Стандартное название (“pandas") заменяется на
его сокращение (“pd").
В дальнейшем в коде будем пользоваться этим
сокращенным названием библиотеки.
Кафедра
Цифровых технологий
50

51. Объекты Series и DataFrame

В основе Pandas лежит класс DataFrame,
предоставляющий возможности работы с двумерными
массивами неоднотипных данных. Объект DataFrame
составлен из объектов Series — одномерных массивов
NumPy ndarray, объединенных под одним названием.
Кафедра
Цифровых технологий
51

52. Создание объекта

Есть много способов создавать объекты Series и DataFrame.
Рассмотрим по одному способу, про другие можно почитать здесь
https://devpractice.ru/pandas-series-and-dataframe-part2/
Создание Series
• Самый простой способ создать Series – это передать в
качестве единственного параметра в конструктор класса
список Python:
s1 = pd.Series([1, 2, 3, 4])
s1
Создание DataFrame
• Cоздадим DataFrame из списка, элементами которого
являются словари:
d3 = [{"price": 3, "count":8}, {"price": 4, "count": 11}]
df3 = pd.DataFrame(d3)
df3
Кафедра
Цифровых технологий
52

53. Работа с элементами Series

Работа с элементами Series
• К элементам Series можно обращаться по численному индексу, при
таком подходе работа со структурой не отличается от работы со
списками в Python:
s6 = pd.Series([1, 2, 3, 4, 5], ['a', 'b', 'c', 'd', 'e'])
• Можно использовать метку, тогда работа с Series будет похожа на
работу со словарем (dict) в Python:
s6['d']
• Доступно получение slice’ов:
s6[:2]
• В поле для индекса можно поместить условное выражение:
s6[s6 <= 3]
• Со структурами Series можно работать как с векторами: складывать,
умножать вектор на число и т.п:
s7 = pd.Series([10, 20, 30, 40, 50], ['a', 'b', 'c', 'd', 'e'])
s6 + s7
s6 * 3
Кафедра
Цифровых технологий
53

54. Работа с элементами DataFrame

Работа с элементами DataFrame
• Создадим датафрэйм:
df = pd.DataFrame(d, index=['a', 'b', 'c'])
• Выбор столбца:
• Выбор строки по метке:
• Выбор строки по индексу:
• Срез по строкам:
• Выбор строк, отвечающих условию:
Кафедра
Цифровых технологий
df['count']
df.loc['a']
df.iloc[1]
df[0:2]
df[df['count'] >= 20]
54

55. Работа с элементами DataFrame

Работа с элементами DataFrame
Операция
Синтаксис
Возвращаемый
результат
Выбор столбца
df[col]
Series
Выбор строки по метке
df.loc[label]
Series
Выбор строки по индексу
df.iloc[loc]
Series
Слайс по строкам
df[0:4]
DataFrame
Выбор строк, отвечающих
условию
df[bool_vec]
DataFrame
Кафедра
Цифровых технологий
55

56. Загрузка данных из разных источников

Кафедра
Цифровых технологий

57. Файлы формата *.csv

• CSV (от англ. Comma-Separated Values — значения,
разделённые запятыми) — текстовый формат,
предназначенный для представления табличных
данных.
• Каждая строка файла – одна строка таблицы. Значения в
строке разделяются запятой. Однако на практике часто
используются другие разделители (точка с запятой,
пробел, табуляция, и т.п.)
Кафедра
Цифровых технологий
57

58. Чтение данных из файла *.csv

Кафедра
Цифровых технологий

59. Параметры функции pd.read_csv()

filepath - путь к файлу, содержащему данные
sep - символ-разделитель полей в строке (по умолчанию ',')
header - номер строки, используемый в качестве заголовка
столбцов (по умолчанию 0, что означает первую строку)
index_col - номер столбца или список номеров столбцов,
используемых в качестве индекса (по умолчанию None)
usecols - список имен или индексов столбцов, которые нужно
загрузить
dtype - словарь типов данных для каждого столбца
skiprows - количество строк, которые следует пропустить перед
началом чтения данных
na_values - значения, которые должны интерпретироваться как
пропущенные (NaN)
encoding - кодировка файла (если файл не в UTF-8)
Кафедра
Цифровых технологий

60. Пример с параметрами

Кафедра
Цифровых технологий

61. Чтение из файла Excel (*.xlsx)

Кафедра
Цифровых технологий

62. Параметры функции pd.read_excel()

filepath - путь к файлу, содержащему данные
sheet_name - имя листа или индекс листа, который нужно прочитать
(по умолчанию 0, что означает первый лист)
header - номер строки, используемый в качестве заголовка столбцов
(по умолчанию 0, что означает первую строку)
index_col - номер столбца или список номеров столбцов,
используемых в качестве индекса (по умолчанию None)
usecols - список имен или индексов столбцов, которые нужно
загрузить
dtype - словарь типов данных для каждого столбца
skiprows - количество строк, которые следует пропустить перед
началом чтения данных
na_values - значения, которые должны интерпретироваться как
пропущенные (NaN)
engine - движок для парсинга Excel-файлов (по умолчанию 'xlrd')
Кафедра
Цифровых технологий

63. Пример с параметрами

Кафедра
Цифровых технологий

64. Чтение файла базы данных (*.db)

Потребуется установить драйвер базы данных, например,
sqlite3 для SQLite, sqlalchemy для MySQL, PostgreSQL и
других СУБД.
Установка необходимых библиотек:
Кафедра
Цифровых технологий

65. Параметры функции pd.read_sql()

sql - (обязательный) SQL-запрос, который будет выполнен. Может
быть строковым представлением SQL-запроса или объектом
Selectable из SQLAlchemy
con - (обязательный) объект подключения к базе данных
params - (необязательный) параметры для подстановки в SQL-запрос
columns (необязательный) списки имен столбцов в результирующем
DataFrame. Если не задан, имена столбцов будут взяты из SQLзапроса.
Кафедра
Цифровых технологий

66. Пример для SQLite:

Кафедра
Цифровых технологий

67. Знакомимся с данными

Кафедра
Цифровых технологий
67

68. Атрибуты и Методы

Методы, и атрибуты: в чём их различие?
По внешнему виду: после названия метода идут
скобки, в которых могут быть аргументы, а после
названия атрибутов их нет.
• Методы являются функциями, связанными с
объектом. То есть они что-то
вычисляют/сохраняют/загружают.
• Атрибуты – свойства, связанные с объектом. Их
значение сохранено и не вычисляется при вызове.
Документация: https://pandas.pydata.org/pandasdocs/stable/reference/api/pandas.DataFrame.html
Кафедра
Цифровых технологий
68

69. Типы колонок

• Атрибут dtypes – возвращает описание типа каждой
колонки. Типы более-менее совпадают с типами в
python, кроме нескольких различий:
• у типов присутствует описание размера (числа битов)
• все сложные типы (не числа или логические
значения) отображаются как object
• Информация о типе важна для дальнейшей работы с
датафрэймом (например, чтобы не произвести
сложение строк, думая, что это числа).
Кафедра
Цифровых технологий
69

70. Методы info() и describe()

• Метод info() позволяет узнать типы данных в столбцах
датафрейма, названия столбцов и количество ненулевых
значений в каждом столбце.
• Метод describe() выводит информацию о числе строк,
среднем, стандартном отклонении, минимуме,
максимуме и значениях по 25-ому, 50-ому и 75-ому
квартилям. По умолчанию он выполняется только для
числовых столбцов, так как большинство этих
параметров неочевидно определяются для других типов
данных (например, строк)
Кафедра
Цифровых технологий
70

71. Метод rename()

• Позволяет переименовать столбцы.
В идеале названия колонок осмыслены, актуальны, не
содержат пробелов, написаны на английском языке.
# Rename columns
df = df.rename(columns={‘Fare': ‘Price'})
Кафедра
Цифровых технологий
71

72. Применение вычислительных методов

• Целый набор методов, доступных для колонок
датафрэймов.
Например:
df.Price.sum()
# сумма всех чисел в колонке
product() – перемножение
mean() – среднее арифметическое
median() – медианное значение
moda() – модальное значение
var() – дисперсия
std() – среднеквадратичное отклонение
Кафедра
Цифровых технологий
72

73. Пропуски в данных

• Для подсчета количества пропущенных значений в
столбце (датафрейме) - метод isnull():
df['Age'].isnull().sum()
sum() - для подсчета общего количества пропущенных значений в
столбце
• Для удаления строк (столбцов) с пропусками - метод
dropna():
df = df.dropna()
• Для заполнения строк (столбцов) значениями - метод
fillna():
df['Age'] = df['Age'].fillna(df['Age'].median())
Кафедра
Цифровых технологий
73

74. Подсчет значений

• Метод value_counts считает, сколько раз встречается каждое
уникальное значение переменной. Например, для этих данных
посчитать, сколько раз встречается каждое имя:
df['name'].value_counts()
• Параметры метода:
• normalize – показать относительные частоты уникальных
значений (по умолчанию равен False);
• dropna – не включать количество NaN (по умолчанию равен True):
df['name'].value_counts(normalize=True, dropna=False)
• bins – сгруппировать количественную переменную (например,
разбить возраст на возрастные группы); для использования
данного параметра нужно указать, на сколько групп разбить
переменную:
df['year'].value_counts(bins=2) # разбить на 2 промежутка
Кафедра
Цифровых технологий
74

75. Поиск дубликатов

• Метод drop_duplicates() используется для удаления
дублирующихся строк или столбцов из DataFrame или
Series.
• Параметры метода:
• subset - определяет подмножество столбцов, на основании которого
будут удаляться дубликаты. По умолчанию проверяются все столбцы.
• keep - задает режим удаления дубликатов:
"first" (по умолчанию): сохраняет первую встреченную строку среди дубликатов и удаляет
остальные.
"last": сохраняет последнюю встреченную строку среди дубликатов и удаляет предыдущие.
False: удаляет все строки-дубликаты, включая первую встречу.
• inplace - если установлено значение True, изменения применяются
непосредственно к исходному объекту (DataFrame или Series), иначе
возвращается новый объект.
• ignore_index - если установлено значение True, игнорирует индексы
удаляемых строк и перезагружает индекс нового результата.
Кафедра
Цифровых технологий
75

76. Сохранение в CSV-файл

Кафедра
Цифровых технологий

77. Запись в *.csv

Функция pandas.to_csv() используется для сохранения
DataFrame в файл формата CSV
(файл появляется во временной папке Colab, не на Google-диске)
Кафедра
Цифровых технологий

78. Параметры функции to_csv()

path_to_file - путь к файлу, куда будет записан CSV-файл
sep - символ-разделитель полей в строке (по умолчанию ‘,’)
na_rep - строка, которая будет использована для представления
пропущенных значений (по умолчанию пустая строка)
float_format - формат чисел с плавающей точкой (по
умолчанию None)
columns - список столбцов, которые нужно сохранить (по
умолчанию сохраняются все столбцы)
header - логический флаг, определяющий, нужно ли сохранять
заголовки столбцов (по умолчанию True)
index - логический флаг, определяющий, нужно ли сохранять
индекс (по умолчанию True)
mode - режим открытия файла (по умолчанию 'w')
encoding - кодировка файла (по умолчанию 'utf-8')
Кафедра
Цифровых технологий

79. Пример с параметрами

Кафедра
Цифровых технологий

80. Где брать данные для анализа?

Кафедра
Цифровых технологий

81. Категории датасетов

Табличные
данные
Аудио
Текстовые
данные
Изображения
Видеоданные
Кафедра
Цифровых технологий

82. Kaggle

Cистема организации
конкурсов по
исследованию
данных, а также
социальная сеть
специалистов по
обработке данных и
машинному
обучению.
С марта 2017 года
принадлежит
корпорации Google.
Кафедра
Цифровых технологий

83. Kaggle

• А еще, на Kaggle можно найти множество
ноутбуков с готовыми решениями различных
задач, которые можно использовать в качестве
основы для своих проектов.
• Изучайте примеры и кейсы, чтобы понять, как
другие решают задачи машинного обучения.
Kaggle — отличный ресурс для поиска примеров
и вдохновения.
Кафедра
Цифровых технологий

84. Hugging Face

Онлайн-пространство для совместной
работы над моделями, наборами
данных и приложениями.
Поддерживается Hugging Face, Inc. —
американской компанией,
занимающейся разработками в
сфере искусственного интеллекта и
машинного обучения (создатели
библиотек Transformers - для
обработки естественного языка, и
Diffusers - задачи, связанные с
изображениями).
Кафедра
Цифровых технологий

85. Российские статистические службы

• Росстат (Федеральная служба
государственной статистики)
https://rosstat.gov.ru/statistic
• Витрина статистических
данных
https://showdata.gks.ru/finder/
• И др.
Кафедра
Цифровых технологий

86. Задание 2

• Загрузите на Google Диск файлы Задание_2.ipynb,
oscar_age_female.csv, titanic.csv
• В файле Задание_2.ipynb находятся упражнения для
выполнения. Откройте его в Google Collaboratory, и на
его основе выполните упражнения в своем ранее
созданном файле *.ipynb (см. Задание 1, слайд 20)
• На проверку в ИнфорУПро прислать ссылку на файл,
размещенный на Google Диске
(обязательно дать доступ на просмотр!)
Кафедра
Цифровых технологий
86
English     Русский Rules