Познакомиться с различными способами представления табличных данных в файлах, овладеть навыками чтения данных из внешних файлов с помощью библиотеки Pandas, приобрести навыки выгрузки структурированных данных в различные форматы.
Ознакомиться с форматами данных предложенных по варианту файлов.
Изучить и описать выявленные особенности каждого файла.
Построить модель данных источника в нотации "Воронья лапа".
Выбрать способ загрузки для каждого файла и загрузить данные в Python в виде Pandas DataFrame.
Выполнить очистку данных от лишних символов, приведение связанных между собой колонок к единому типу данных, строки с датами и временем, числовые показатели - преобразовать к соответствующим типам данных.
Экспортировать все наборы данных из DataFrame в файлы по таблицам формата по варианту.
Подготовить отчет о выполнении лабораторной работы.
Исходные данные:
Экспортированные данные:
Исходные данные:
Экспортированные данные:
Исходные данные:
Экспортированные данные:
Исходные данные:
Экспортированные данные:
Исходные данные:
Экспортированные данные:
Исходные данные:
Экспортированные данные:
Исходные данные:
Экспортированные данные:
Исходные данные:
Экспортированные данные:
Исходные данные:
Экспортированные данные:
Исходные данные:
Экспортированные данные:
Данный шаг предполагает знакомство обучаемого с принципами организации данных в предоставленных вариантом форматах как входных, так и выходных файлов:
Текстовые
С иерархией
С разделителем
С полями фиксированной ширины
Бинарные
Псевдоформаты
Некоторые из них общеупотребимы, некоторые - специализированные. Но данные можно достать из каждого. Общий список форматов, включенных в данную лабораторную работу следующий:
XLSX
XLS
CSV
TSV
JSON
XML
Parquet
Avro
Yaml
Данные с фиксированной шириной колонок
Допустим, в нашем распоряжении имеются два файла: risk.json и инциденты-2022-05-13.xlsx.
Файл risk.json выглядит следующим образом:
Характеристики файла "risk.json":
Файл является текстовым
12 строк
Кодировка UTF-8
Данные организованы в формате Json
Массив содержит два объекта
Каждый объект характеризуется тремя атрибутами: risk_id, category_name, description
В данном файле хранится справочник видов рисков с категориями.
Файл инциденты-2022-05-13.xlsx - является файлом офисного пакета Ms Excel и позволяет организовать данные в табличном виде, разбивая значения на столбы, строки и ячейки.
Характеристики файла "инциденты-2022-05-13.xlsx":
Наименование файла содержит дату, к которой относятся содержащиеся в нём сведения - 13 мая 2022.
Файл содержит два листа: "События" и "Ущерб".
Лист "События" выглядит следующим образом:
Характеристики листа "События":
Таблица содержит 4 строки
Данные в таблице организованы 5 колонками
Наименования колонок в файле отсутствуют
Значения в колонке 1 представляют собой идентификаторы формата UUID и являются уникальными
В колонке 2 размещены числовые неуникальные значения, совпадающие с множеством значений атрибута risk_id из файла risk.json, и скорее всего являются идентификаторами типов рисков.
В колонке 3 хранятся текстовые значения произвольного формата. Вероятнее всего, они являются описанием произошедшего события.
Колонка 4 содержит текстовые значения с номерами и адресами - предположительно это обозначения филиалов (отделений) организации.
Колонка 5 содержит дату и точное время. Т к все значения отличаются от даты из заголовка файла, то, вероятнее всего, они обозначают момент регистрации события в системе
...
Модель данных источника для приведенного в п.2 набора файлов будет выглядеть следующим образом:
Символом * помечены предполагаемые имена атрибутов, которые явно отсутствуют в исходном файле.
Для импорта каждого формата - существует свой собственный механизм. Для большинства представленных файлов будет достаточно функций библиотеки Pandas, однако, есть и исключения.
Обработка Avro, статья с примером экспорта, библиотека fastavro
Данный этап подразумевает:
очистку данных от лишних символов и мусорных значений;
приведение дат, времени, числовых показателей и строковых значений к соответствующим типам данных;
приведение связанных между собой колонок к единому типу данных;
объединение фрагментов в один набор данных;
добавление корректных наименований всех колонок.
Функция pandas.DataFrame.to_excel
Функция pandas.DataFrame.to_csv
Функция pandas.DataFrame.to_json
Функция pandas.DataFrame.to_xml
Функция pandas.DataFrame.to_parquet
Обработка Avro, статья с примером экспорта, библиотека fastavro
Отчет следует оформлять в формате docx-документа в соответствии с ГОСТ 7.32-2017. Он должен содержать:
Титульный лист;
Текст цели лабораторной работы, общего задания и задания по варианту;
Снимки экрана с изображением содержимого исходных и результирующих файлов, их описание;
Логическую схему источника;
Комментарии к выбору библиотек, функций и параметров для импорта данных;
Исходный код программы;
Вывод о проделанной работе.
Направлять вложением в приличное письмо на электронную почту преподавателя сразу по готовности.