Реализация алгоритма построения профиля потребления электроэнергии на Python

Анализ характера потребления и распределения электроэнергии во времени, подбор выгодного для объекта тариф. Использование Python библиотеки pandas для разработки алгоритма. Расчёт режима эксплуатации, балансирование нагрузки по суткам, месяцам и годам.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 20.01.2022
Размер файла 474,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://allbest.ru

Тверской Государственный Университет

Реализация алгоритма построения профиля потребления электроэнергии на Python

Ким Е. Э. студент 4 курс,

факультет «Математический»

Россия, г. Тверь

Аннотация

Статья посвящена реализации алгоритма построения профиля потребления электроэнергии. Имея исходные данные, программа строит профиль потребления с заданной частотой на заданной диапазоне. Алгоритм реализован на Python.

Ключевые слова: Электроэнергетика, анализ данных электропотребления, алгоритмы, Python.

Annotation

The article is devoted to the implementation of an algorithm for constructing an electricity consumption profile. Having the initial data, the program builds a consumption profile with a given frequency on a given range. The algorithm is implemented in Python.

Key words: power industry, analysis of power consumption data, algorithms, Python.

Профиль потребления позволяет понимать характер потребления в целом. Чтобы не каждый день отслеживать, а знать, что в целом на заводе/предприятии/офисе такое распределение во времени на протяжении суток/месяца/года. Тогда можно и нагрузку балансировать и понимать, как в целом работы идут или понимать время работы объекта, т.к. часы открытия и закрытия коррелируют с профилем потребления энергии, и т.д. Также опираясь на профиль потребления можно подбирать тариф электропотребления, который является более выгодным для объекта.

Для реализации алгоритма будем использовать Python библиотеку pandas. Наши данные хранятся в файлах Excel. Нам нужно их считать в Python для дальнейшей работы. Для этого данные нужно перевести в формат DataFrame. Это позволит производить различные манипуляции с данными средствами библиотеки pandas. DateFrame - это табличная структура данных. Ее главная задача -- позволить использовать многомерные Series. DataFrame состоит из упорядоченной коллекции колонок, каждая из которых содержит значение разных типов. электроэнергия нагрузка python тариф

Для считывания данных с эксель файла мы используем метод read_excel. Так как у нас 12 эксель файлов, то есть в одном файле хранится информация за один месяц, то мы используем функцию concat, чтобы соединить все 12 файлов в один.

Отбрасываем ненужные колонки с помощью df.drop.

Даем понятные названия колонкам: date, consumption.

Изначально у нас индексация идет таким образом: 0, 1,2, 3... и так далее. Но для использования функции resample, нам необходимо индексами сделать колонку date. Таким образом получаем временной ряд.

Рис. 1. Код алгоритма.

Функция resample позволяет сделать выборку данных по временному интервалу (частоте). То есть, например, если у нас есть данные с частотой полчаса. То с помощью функции resample, можно эти данные преобразовать в данные с частотой час. В функцию resample передаем задаваемый аргумент. Этот аргумент будет означать частоту, с которой мы хотим получить данные. Аргумент может принимать следующие значения: месяц, день, час, полчаса | M, D, 60T, 30T и так далее.

Для дальнейшей работы нам понадобится индексация по умолчанию. Для этого используем метод reset_index и в параметрах используем drop=False, чтобы колонку с датой не удалило. Далее создаем колонку в DataFrame под названием year. Pandas.apply позволяет передавать функцию и применять ее к каждому значению серии DataFrame. Мы передаем функцию, которая будет возвращать день и месяц. Далее создаем колонку week, в котором хранится номера дней недели (пн - 0, вск - 6). Делаем это с помощью библиотеки datetime. Создаем колонку day. Для этого сначала дату переводим в формат строки, чтобы к ней можно было применить функцию split, которая отделит дату от времени на отдельные составляющие. И оттуда выбираем колонку 1.

Рис. 2. Результат работы функции split.

Таким образом, у нас в исходный DataFrame добавилось 3 колонки. И в функцию df.groupby аргументом мы передаем 3-й параметр функции main_fun, что и позволяет построить профиль потребления на заданном диапазоне.

И таким образом происходит группировка методом groupby. После чего находится среднее значение и строится график с помощью библиотеки matplotlib.

Рис. 3. Суточный профиль потребления.

Использованные источники

1. Matplotlib: Visualization with Python. [ Электронный ресурс]. URL: https://matplotlib.org/ (дата обращения 29.06.2021).

2. Всё о Python. Программирование на Python 3. [Электронный ресурс]. URL: https://all-python.ru/osnovy/modul-datetime.html (дата обращения 29.06.2021).

3. Pandas documentation [Электронный ресурс]. URL: https://pandas.Pvdata.org/pandas-docs/stable/index.html(датаобращения 29.06.2021).

Размещено на Allbest.ru


Подобные документы

  • Разработка программ средствами библиотеки tkinter на языке Python. Изучение основы работы в текстовом редакторе Word. Описание авторской идеи анимации. Использование базовых команд и конструкций. Процесс проектирования и алгоритм разработанной программы.

    контрольная работа [125,3 K], добавлен 11.11.2014

  • Программное обеспечение Python и ее основные характеристики, как программной среды. Общие сведения о языке программирования Python. Особенности применения ППП Python (x,y) с использованием его различных вычислительных модулей в учебном процессе.

    дипломная работа [2,9 M], добавлен 07.04.2019

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

    курсовая работа [43,0 K], добавлен 08.06.2014

  • Отличительные особенности языка программирования Python: низкий порог вхождения, минималистичный язык, краткий код, поддержка математических вычислений, большое количество развитых web-фреймворков. Традиционная модель выполнения программ на языке Python.

    реферат [51,9 K], добавлен 18.01.2015

  • Об'єктно-орієнтована мова Python - сучасна мова програмування, проста у вивченні та використанні. Наявність повної стандартної бібліотеки. Середовища програмування на Python. Механізм функціонування інтерпретатора. Колекції даних, комбіновані оператори.

    презентация [753,2 K], добавлен 06.02.2014

  • Анализ создания виртуального окружения для разработки. Установка фреймворка Flask. Особенность настройки аутентификации и привилегий. Создание Python-файла и написание в нем простого веб-приложения. Запуск и проверка работоспособности приложения.

    лабораторная работа [2,1 M], добавлен 28.11.2021

  • Анализ основ ООП, изучение языка программирования Python, применение полученных знаний на практике для реализации предметной области. Понятие и механизм инкапсуляции. Фиксирование информационной работы отеля. Диаграмма классов. Реализация на языке Python.

    курсовая работа [227,6 K], добавлен 14.05.2017

  • Рассмотрение теоретических аспектов решения задач средствами пакетов прикладных программ. Разработка алгоритма проведения вычислений, необходимых для расчета израсходованной электроэнергии. Основы организации удобного интерфейса созданной программы.

    курсовая работа [1,2 M], добавлен 09.07.2015

  • Разработка структуры базы данных для хранения дипломных проектов в среде объектно-ориентированного программирования Python. Создание внешнего вида окон ввода-вывода информации, технологии переходов. Листинг программы с пояснениями; направления улучшения.

    курсовая работа [3,1 M], добавлен 27.02.2015

  • Представление полиномов в виде кольцевых списков и выполнение базовых арифметических действий над ними. Реализация алгоритмов сложения, умножения и вычитания полиномов класса List на языке программирования Python 2.7. в интегрированной среде Python IDLE.

    курсовая работа [228,1 K], добавлен 11.01.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.