Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
7615.pdf
Скачиваний:
2
Добавлен:
23.11.2023
Размер:
1.17 Mб
Скачать

ЛАБОРАТОРНАЯ РАБОТА № 2

Введение в анализ данных (очистка, интерполяция, экстраполяция)

Цель работы: изучить методы интерполяции и очистки временных рядов средствами библиотек pandas, statsmodels и sklearn.

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Импортирование датасетов и интерполяция пропущенных данных

#@title Импортирование библиотек и монтирование диска

from google.colab import drive # функция монтирования google диска (доступ к папкам) import os # библиотека работы с фаловой системой

import pandas as pd import numpy as np

#import seaborn as sns

#import matplotlib.pyplot as plt

#Монтирование google диска с целью получния доступа к датасетам drive.mount('/content/drive')

#Указываем путь до папки с датасетом максимальной применимой частоты (МПЧ (muf)) dir_path = "/content/drive/My Drive/Colab Notebooks/ai_systems/lw2/muf_data"

#Метод .listdir позволяет получить список файлов в дирректории

directory_files = os.listdir(dir_path)

Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount("/content/drive", force_remount=True).

Формирование дата фрейма и интерполяция пропущенны значений

Создадим новый дата фрейм и начнем обработку файлов дата сета в цикле. Интерполяция пропущенных значений файлов выполним путем определения начальной и конечной даты каждого набора данных (файл), затем в данном диапазоне создадим новый набор индексов формата времени с шагом датасета (в данном случае шаг 5 мин (300 сек)). Далее по новому временному диапазону произведем реиндексирование дата фрейма, пропущенные значения определятся как NaN. Операция интерполирования восстановит NaN значения.

df = pd.DataFrame()

for file in directory_files:

#Оператор os.path.join(dir_path, file) соединяет путь до папки с данными с конкретным названием файла,

#с целью формирования полноценного пути до документа дата сета

df_file = pd.read_csv(os.path.join(dir_path, file) , names=['time', 'muf', 'bool'], encoding = 'ISO-8859-1', low_memory=False)

#Метод .drop выполняет удаление колонки или строчки из дата фрейма df_file = df_file.drop('bool', axis=1)

#Ниже код формирования колонки времени дата фрейма формата '%Y-%m-%d %H:%M'

df_file['time'] = pd.to_datetime('2021'+str(file.split('.')[0]) +' '+ df_file['time'].astype(str), format='%Y%j %H:%M:%S').dt.strftime('%Y-%m-%d %H:%M')

#Далее определим начальную и конечную дату start = df_file['time'].min()

stop = df_file['time'].max()

#Создадим и отформатируем новый диапазон дат

31

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]