Лабораторная работа №3 по дисциплине: Обработка и анализ данных. Вариант для всех
Состав работы
|
|
|
|
|
|
|
|
Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
Описание
Лабораторная работа No3. Работа с БД
Создать программу для работы с базой данных, при этом добавив обработку исключительных ситуаций. База данных должна содержать не менее 5 связанных таблиц. У программы должен быть графический интерфейс (возможность отображать таблицы с помощью библиотеки
Pandas, редактировать таблицы с помощью интерактивных форм)
[https://colab.research.google.com/notebooks/forms.ipynb].
По сохраненным данным в таблицах построить минимум 3 различных аналитических графика
[https://colab.research.google.com/notebooks/charts.ipynb,
https://colab.research.google.com/notebooks/widgets.ipynb] с помощью библиотеки matplotlib.
Создание базы данных с помощью SQLite
SQLite - это библиотека, написанная на языке C, которая предоставляет легкую дисковую базу данных, не требующую отдельного серверного процесса и позволяющую получить доступ к базе данных с использованием нестандартного варианта языка запросов SQL. Некоторые приложения могут использовать SQLite для внутреннего хранения данных. Также возможно
создать прототип приложения с использованием SQLite, а затем перенести код в большую базу данных, такую как PostgreSQL или Oracle. Модуль sqlite3 был написан Герхардом Херингом. Он предоставляет интерфейс SQL,
соответствующий спецификации DB-API 2.0, описанной в PEP 249 [https://docs.python.org/2/library/sqlite3.html].
Для создания новой базы данных необходимо импортировать библиотеку sqlite3(она уже предварительно установлена в google-лаборатории) и вызвать функцию соединения с базой. При первом вызове буде создан файл «mydatabase.db»
После этого в текущей папке появится новый файл «mydatabase.db», который можно увидеть, используя команду !ls:
После этого в текущей папке появится новый файл «mydatabase.db», который можно увидеть, используя команду !ls:
Можно создавать временные базы данных, хранящиеся в оперативной памяти, при этом файл сохраняться не будет, и доступность будет ограничена текущей сессией:
После получения соединения, вы можете обращаться к базе данных с помощью объекта типа cursor. Выполнение запросов к базе выполняется с помощью его метода execute():
В данном примере в базе данных «mydatabase» создается таблица «students»со следующими полями: «id» – первичный ключ, обозначающий номер студента, «FIO» – ФИО студента типа «текст» и «yearbirth» – год рождения
типа «текст». Добавлять поля с первичным ключом в таблицу не обязательно, он автоматически сгенирируется во время создания таблицы. Но, если вы его задали при создании таблицы, то именно это поле будет первичным ключом.
Добавление данных в таблицу осуществляется с помощью SQL-команды «INSERT».
После добавления записи необходимо сохранить изменения с помощью функции comit(). SQLite не пишет в базу данных, пока вы не совершите транзакцию. Транзакция состоит из 1 или более запросов, которые вносят изменения в базу данных одновременно. Это сделано для того, чтобы упростить восстановление после случайных изменений или ошибок.
Транзакции позволяют выполнить несколько запросов, а затем, наконец, изменить базу данных с результатами всех из них. Это гарантирует, что в случае сбоя одного из запросов база данных не будет частично обновлена
Вывод записей таблицы на экран:
Первый запрос, который мы выполнили, называется SELECT *, что означает, что мы хотим выбрать все записи из таблицы “students”, отсортированные по полю “id”.
Удаление записи из базы данных:
В запросе из таблицы students удаляются данные, у которых в поле FIO записано «Savelieva Anastasia»
Вывод записей таблицы на экран после удаления строки:
Здесь мы в запросе SELECT указали еще rowid – это первичный ключ таблицы по-умолчанию. Можно пользоваться им, можно создать свой собственный, как в нашем случае поле “id”. Видно, что строка с FIO
«Savelieva Anastasia» была удалена из таблицы.
Запрос на выбор всех студентов, у которых год рождения 2002:
Мы выполняем SQL и используем функцию fetchall() для получения результатов. Можно также использовать функцию fetchone() для получения только первого результата. Функция execute() выполняет sql-запрос на выбор данных из таблицы.
Как видите, результаты отформатированы в виде списка кортежей. Каждый кортеж соответствует строке в базе данных, к которой мы обращались.
Работа с данными таким способом довольно болезненна. Нам нужно вручную добавить заголовки столбцов и вручную проанализировать данные.
К счастью, у библиотеки панд есть более простой способ, который мы рассмотрим в следующем разделе.
Пример ниже показывает, как команда LIKE используется при поиске частичных фраз. В нашем случае, мы искали по всей таблице FIO, которые начинаются с “S”. Знак процента (%) является подстановочным оператором.
В результате данного запроса были выбраны все студенты, чья фамилия начиналась на “S”.
Прежде чем двигаться дальше, рекомендуется закрыть открытые объекты Connection и Cursor. Это предотвращает блокировку базы данных SQLite.
Когда база данных SQLite заблокирована, возможно, вы не сможете обновить базу данных и получите ошибки. Мы можем закрыть курсор и соединение следующим образом:
Работа с SQLite и Pandas DataFrame
Для чтения результатов SQL-запроса можно использовать функцию read_sql_query библиотеки pandas DataFrame. Приведенный ниже код выполнит тот же запрос, который мы только что сделали, но вернет DataFrame. Он имеет несколько преимуществ по сравнению с запросом,
выполненным нами ранее, т.к.
Не требуется создание объекта Cursor или вызова fetchall в конце.
Имена заголовков из таблицы считываются автоматически.
Создается DataFrame, позволяющий быстро отобразить и изучить данные.
В результате получаем красиво отформатированный объект DataFrame, с помощью него можно легко обратиться к определенному столбцу таблицы и
вывести все имена и фамилии студентов:
Создание таблиц с помощью Pandas
Пакет pandas дает нам гораздо более быстрый способ создания таблиц. Нам просто нужно сначала создать DataFrame, а затем экспортировать его в таблицу SQL. Сначала мы создадим DataFrame:
Затем мы сможем вызвать метод to_sql для преобразования df в таблицу в базе данных. Мы устанавливаем параметр if_exists для замены, чтобы
удалить и заменить любые существующие таблицы с именем “raspisanie”:
Затем мы можем проверить, что все работает, запросив базу данных:
Редактирование таблиц с помощью Pandas
Пи работе с данными иногда приходится изменять конфигурацию таблиц.
Допустим в ранее созданную таблицу “raspisanie” нам необходимо добавить поле аудитория («room»). Сначала сделаем это с помощью курсора cur:
Обратите внимание, что в SQLite все столбцы имеют значение null (что в Python переводится как None), поскольку для этого столбца еще нет никаких
значений.
В библиотеке Pandas также предусмотрена подобная функция редактирования таблиц:
Дополнительные ссылки:
1.https://pandas.pydata.org/pandasdocs/stable/getting_started/comparison/comparison_with_sql.html
2. https://docs.python.org/3/library/sqlite3.html
3.http://sebastianraschka.com/Articles/2014_sqlite_in_python_tutorial.html
Создание и редактирование интерактивных форм
Формы позволяют удобно редактировать код. Выделив текущую ячейку кода необходимо выбрать раздел Insert → Add form field. При изменении
значения в форме изменяется соответствующая строка кода [https://colab.research.google.com/notebooks/forms.ipynb].
Для сокрытия кода необходимо выбрать раздел Edit → Show/hide code. Для обращения таблицам и полям можно использовать интерактивные поля ввода
Создать программу для работы с базой данных, при этом добавив обработку исключительных ситуаций. База данных должна содержать не менее 5 связанных таблиц. У программы должен быть графический интерфейс (возможность отображать таблицы с помощью библиотеки
Pandas, редактировать таблицы с помощью интерактивных форм)
[https://colab.research.google.com/notebooks/forms.ipynb].
По сохраненным данным в таблицах построить минимум 3 различных аналитических графика
[https://colab.research.google.com/notebooks/charts.ipynb,
https://colab.research.google.com/notebooks/widgets.ipynb] с помощью библиотеки matplotlib.
Создание базы данных с помощью SQLite
SQLite - это библиотека, написанная на языке C, которая предоставляет легкую дисковую базу данных, не требующую отдельного серверного процесса и позволяющую получить доступ к базе данных с использованием нестандартного варианта языка запросов SQL. Некоторые приложения могут использовать SQLite для внутреннего хранения данных. Также возможно
создать прототип приложения с использованием SQLite, а затем перенести код в большую базу данных, такую как PostgreSQL или Oracle. Модуль sqlite3 был написан Герхардом Херингом. Он предоставляет интерфейс SQL,
соответствующий спецификации DB-API 2.0, описанной в PEP 249 [https://docs.python.org/2/library/sqlite3.html].
Для создания новой базы данных необходимо импортировать библиотеку sqlite3(она уже предварительно установлена в google-лаборатории) и вызвать функцию соединения с базой. При первом вызове буде создан файл «mydatabase.db»
После этого в текущей папке появится новый файл «mydatabase.db», который можно увидеть, используя команду !ls:
После этого в текущей папке появится новый файл «mydatabase.db», который можно увидеть, используя команду !ls:
Можно создавать временные базы данных, хранящиеся в оперативной памяти, при этом файл сохраняться не будет, и доступность будет ограничена текущей сессией:
После получения соединения, вы можете обращаться к базе данных с помощью объекта типа cursor. Выполнение запросов к базе выполняется с помощью его метода execute():
В данном примере в базе данных «mydatabase» создается таблица «students»со следующими полями: «id» – первичный ключ, обозначающий номер студента, «FIO» – ФИО студента типа «текст» и «yearbirth» – год рождения
типа «текст». Добавлять поля с первичным ключом в таблицу не обязательно, он автоматически сгенирируется во время создания таблицы. Но, если вы его задали при создании таблицы, то именно это поле будет первичным ключом.
Добавление данных в таблицу осуществляется с помощью SQL-команды «INSERT».
После добавления записи необходимо сохранить изменения с помощью функции comit(). SQLite не пишет в базу данных, пока вы не совершите транзакцию. Транзакция состоит из 1 или более запросов, которые вносят изменения в базу данных одновременно. Это сделано для того, чтобы упростить восстановление после случайных изменений или ошибок.
Транзакции позволяют выполнить несколько запросов, а затем, наконец, изменить базу данных с результатами всех из них. Это гарантирует, что в случае сбоя одного из запросов база данных не будет частично обновлена
Вывод записей таблицы на экран:
Первый запрос, который мы выполнили, называется SELECT *, что означает, что мы хотим выбрать все записи из таблицы “students”, отсортированные по полю “id”.
Удаление записи из базы данных:
В запросе из таблицы students удаляются данные, у которых в поле FIO записано «Savelieva Anastasia»
Вывод записей таблицы на экран после удаления строки:
Здесь мы в запросе SELECT указали еще rowid – это первичный ключ таблицы по-умолчанию. Можно пользоваться им, можно создать свой собственный, как в нашем случае поле “id”. Видно, что строка с FIO
«Savelieva Anastasia» была удалена из таблицы.
Запрос на выбор всех студентов, у которых год рождения 2002:
Мы выполняем SQL и используем функцию fetchall() для получения результатов. Можно также использовать функцию fetchone() для получения только первого результата. Функция execute() выполняет sql-запрос на выбор данных из таблицы.
Как видите, результаты отформатированы в виде списка кортежей. Каждый кортеж соответствует строке в базе данных, к которой мы обращались.
Работа с данными таким способом довольно болезненна. Нам нужно вручную добавить заголовки столбцов и вручную проанализировать данные.
К счастью, у библиотеки панд есть более простой способ, который мы рассмотрим в следующем разделе.
Пример ниже показывает, как команда LIKE используется при поиске частичных фраз. В нашем случае, мы искали по всей таблице FIO, которые начинаются с “S”. Знак процента (%) является подстановочным оператором.
В результате данного запроса были выбраны все студенты, чья фамилия начиналась на “S”.
Прежде чем двигаться дальше, рекомендуется закрыть открытые объекты Connection и Cursor. Это предотвращает блокировку базы данных SQLite.
Когда база данных SQLite заблокирована, возможно, вы не сможете обновить базу данных и получите ошибки. Мы можем закрыть курсор и соединение следующим образом:
Работа с SQLite и Pandas DataFrame
Для чтения результатов SQL-запроса можно использовать функцию read_sql_query библиотеки pandas DataFrame. Приведенный ниже код выполнит тот же запрос, который мы только что сделали, но вернет DataFrame. Он имеет несколько преимуществ по сравнению с запросом,
выполненным нами ранее, т.к.
Не требуется создание объекта Cursor или вызова fetchall в конце.
Имена заголовков из таблицы считываются автоматически.
Создается DataFrame, позволяющий быстро отобразить и изучить данные.
В результате получаем красиво отформатированный объект DataFrame, с помощью него можно легко обратиться к определенному столбцу таблицы и
вывести все имена и фамилии студентов:
Создание таблиц с помощью Pandas
Пакет pandas дает нам гораздо более быстрый способ создания таблиц. Нам просто нужно сначала создать DataFrame, а затем экспортировать его в таблицу SQL. Сначала мы создадим DataFrame:
Затем мы сможем вызвать метод to_sql для преобразования df в таблицу в базе данных. Мы устанавливаем параметр if_exists для замены, чтобы
удалить и заменить любые существующие таблицы с именем “raspisanie”:
Затем мы можем проверить, что все работает, запросив базу данных:
Редактирование таблиц с помощью Pandas
Пи работе с данными иногда приходится изменять конфигурацию таблиц.
Допустим в ранее созданную таблицу “raspisanie” нам необходимо добавить поле аудитория («room»). Сначала сделаем это с помощью курсора cur:
Обратите внимание, что в SQLite все столбцы имеют значение null (что в Python переводится как None), поскольку для этого столбца еще нет никаких
значений.
В библиотеке Pandas также предусмотрена подобная функция редактирования таблиц:
Дополнительные ссылки:
1.https://pandas.pydata.org/pandasdocs/stable/getting_started/comparison/comparison_with_sql.html
2. https://docs.python.org/3/library/sqlite3.html
3.http://sebastianraschka.com/Articles/2014_sqlite_in_python_tutorial.html
Создание и редактирование интерактивных форм
Формы позволяют удобно редактировать код. Выделив текущую ячейку кода необходимо выбрать раздел Insert → Add form field. При изменении
значения в форме изменяется соответствующая строка кода [https://colab.research.google.com/notebooks/forms.ipynb].
Для сокрытия кода необходимо выбрать раздел Edit → Show/hide code. Для обращения таблицам и полям можно использовать интерактивные поля ввода
Дополнительная информация
Уважаемый студент дистанционного обучения,
Оценена Ваша работа по предмету: Обработка и анализ данных
Вид работы: Лабораторная работа 3
Оценка: Зачет
Дата оценки: 17.05.2024
Рецензия: Уважаемый ...............................................,
Данилова(Ермоленко) Любовь Филипповна
В отчете файл: .doc и .ipynb
Оценена Ваша работа по предмету: Обработка и анализ данных
Вид работы: Лабораторная работа 3
Оценка: Зачет
Дата оценки: 17.05.2024
Рецензия: Уважаемый ...............................................,
Данилова(Ермоленко) Любовь Филипповна
В отчете файл: .doc и .ipynb
Похожие материалы
Лабораторные работы №2-3 по дисциплине: Обработка и анализ данных. Вариант общий
xtrail
: 15 августа 2024
*** Лабораторные состоят из отчетов (docx) и файлов программы, написанных на языке Python ***
Лабораторная работа №2
Тема: Работа с файлами. Списки
Задание
Программа должна создавать файл *.xls, записать в него сгенерированный случайным образом массив чисел. Затем, с помощью реализованного алгоритма сортировки, одного из предложенных преподавателем, записать отсортированную последовательность чисел в ранее созданный файл *.xls.
Алгоритмы сортировки:
- Сортировка выбором
- Сортировка вставками
900 руб.
Лабораторные работы 1-3 по дисциплине: Обработка и анализ данных. Вариант №01
IT-STUDHELP
: 11 октября 2023
Вариант No01
Лабораторная работа No1
Введение в Python
Вариант 1
Задание 1
Напишите программу для решения примера.
Предусмотрите проверку деления на ноль. Все необходимые переменные пользователь вводит через консоль.
k=ln|(y-√(|x| ))⋅(x-y/(z+x^2/4))|
Листинг программы
Результат работы программы
------------------------------------------------------------------------------
Задание 2
Разработать программу для вычисления выражения и вывода полученного результата. Соответствующие исходные да
900 руб.
Лабораторные работы 1-3 по дисциплине: Обработка и анализ данных. Вариант №23
IT-STUDHELP
: 20 мая 2023
Лабораторная работа No1
Введение в Python
Вариант 4
Задание 1
Напишите программу для решения примера (по вариантам).
Предусмотрите проверку деления на ноль. Все необходимые переменные пользователь вводит через консоль.
b=(3+e^(y-1))/(1+x^2⋅|y-tg(z)| )
Задание 2
Разработать программу для вычисления выражения и вывода полученного результата. Соответствующие исходные данные ввести с клавиатуры.
b={█(&sin(x+y)+2⋅(x+y)^2,x-y>0@&sin(x-y)+(x-y)^3,x-y<0@&|x^2+√y|,y≠0,x=0@&0,y=0)
Исходные данные: x,y.
1200 руб.
Лабораторная работа 1-3 по дисциплине: Обработка и анализ данных. Вариант 02
IT-STUDHELP
: 14 мая 2022
Лабораторная работа №1
Введение в Python
Вариант 3
Задание 1
Напишите программу для решения примера (по вариантам).
Предусмотрите проверку деления на ноль. Все необходимые переменные пользователь вводит через консоль. Запись |пример| означает «взять по модулю», т.е. если значение получится отрицательным, необходимо сменить знак с минуса на плюс.
Для вычисления примеров вам понадобится библиотека math. Подключить ее можно, записав в ячейке кода: import math.
Задание 2
Разработать программу для
1200 руб.
Лабораторные работы №№1-3 по дисциплине: Обработка и анализ данных. Вариант №5
IT-STUDHELP
: 1 декабря 2021
Лабораторная работа №1
Введение в Python
Вариант 2
Задание 1
Напишите программу для решения примера (по вариантам).
Предусмотрите проверку деления на ноль. Все необходимые переменные пользователь вводит через консоль. Запись |пример| означает «взять по модулю», т.е. если значение получится отрицательным, необходимо сменить знак с минуса на плюс.
Для вычисления примеров вам понадобится библиотека math. Подключить ее можно, записав в ячейке кода: import math.
Задание 2
Разработать программу для
1200 руб.
Контрольная и Лабораторные работы 1-3 по дисциплине: Обработка и анализ данных. Вариант №01
IT-STUDHELP
: 11 октября 2023
Контрольная работа
Вариант No01
Задание 1. Модели и оценка их эффективности
Цель – получить навыки работы c библиотеками Python для задач анализа данных.
Задачи:
1. Загрузить в рабочую зону предоставленный набор данных.
2. Восстановить пропущенные значения.
3. Построить модель классификации и настроить её гиперпараметры.
4. Отобрать информативные признаки и оценить влияние этого процесса на работу модели.
Листинг программы
*******************
Результат работы программы
--------------------
1100 руб.
Контрольная и Лабораторные работы 1-3 по дисциплине: Обработка и анализ данных. Вариант №23
IT-STUDHELP
: 20 мая 2023
Контрольная работа
Вариант No23
Задание 1. Модели и оценка их эффективности
Цель – получить навыки работы c библиотеками Python для задач анализа данных.
Задачи:
1. Загрузить в рабочую зону предоставленный набор данных.
2. Восстановить пропущенные значения.
3. Построить модель классификации и настроить её гиперпараметры.
4. Отобрать информативные признаки и оценить влияние этого процесса на работу модели.
Задание 2. Исследовательский анализ данных
Цель работы: получить навыки работы c библиоте
1700 руб.
Контрольная и Лабораторная работа 1-3 по дисциплине: Обработка и анализ данных. Вариант 02
IT-STUDHELP
: 14 мая 2022
Контрольная работа
Задание 1. Модели и оценка их эффективности
Цель – получить навыки работы c библиотеками Python для задач анализа данных.
Задачи:
1. Загрузить в рабочую зону предоставленный набор данных.
2. Восстановить пропущенные значения.
3. Построить модель классификации и настроить её гиперпараметры.
4. Отобрать информативные признаки и оценить влияние этого процесса на работу модели.
Задание 2. Исследовательский анализ данных
Цель работы:
получить навыки работы c библиотеками Pandas, N
1800 руб.
Другие работы
Контрольная работа по дисциплине: Сети связи и системы коммутации. Вариант №11
dralex
: 14 ноября 2020
Задача 1.
Рассчитать межстанционную нагрузку на ГТС по исходным данным из таблицы 1.
Задача 2.
Рассчитать емкость пучков соединительных линий на участках межстанционной связи. Расчет провести по результатам, полученным при решении задачи 1.
Задача 3.
Найти оптимальную трассу прокладки оптического кольца на сетке улиц города, используя результат расчетов задачи 2 и значения координат расположения ОС из таблицы 2.
Задача 4.
Разработать комплектацию мультиплексора ввода/вывода, заданного в таблице
550 руб.
Управление человеческими ресурсами Экзамен Билет 4
miroslavka85
: 19 февраля 2018
Ответы на экзаменационный билет №4 по дисциплине "Управление человеческими ресурсами"
Дистанционное обучение
50 руб.
Кейс: «Инвестиционное предложение»
Светлана74
: 10 сентября 2019
ОАО «Автогенный завод» занимается производством технических газов (кислород газообразный, углекислота, двуокись углерода). Среднесписочная численность работников - 203 человека. Продукция доставляется покупателю, как собственным автотранспортом, так и на условиях самовывоза. В 2011 году начато строительство распределительного трансформаторного пункта и прокладка кабельной линии до Шинного завода. В 2011 году завершено строительство материального склада и автостоянки закрытого типа, завершена рек
460 руб.
Теория электрических цепей (часть 1-я). Лабораторные работы №№1-3. Вариант 5.
seregaleon87
: 26 января 2018
Лабораторная работа №1
1. Цель работы:
Изучение и экспериментальная проверка законов Ома и Кирхгофа в разветвленной электрической цепи, содержащей источник и резистивные элементы.
Перед выполнением работы перерисовать схему и выбрать направления всех токов (в схеме с одним источником направления токов в ветвях определяются направлением источника).
3.1. Собрать схему (рисунок 1.1а)
Рисунок 1.1а
В программе Electronics Workbench 512 схема имеет вид, приведенный на рисунке 1.1б.
3.2. Установить
500 руб.