Skip to content

Инструмент для анализа данных. Приложение позволяет пользователям загружать данные в формате CSV, фильтровать их, визуализировать ключевые показатели с помощью графиков и создавать отчеты.

License

Notifications You must be signed in to change notification settings

MindlessMuse666/client-data-analysing-tool

Repository files navigation

Клиентский инструмент для анализа данных MIT-License image

Python Qt NumPy Matplotlib SQLite Visual Studio Code

Этот инструмент предназначен для анализа данных, загруженных из CSV-файлов, их отображения, сортировки, построения графиков и создания отчетов. Приложение написано на Python с использованием библиотеки PyQt6 для графического интерфейса, pandas для обработки данных и matplotlib для отрисовки графиков, reportlab для генерации отчётов.


Особенности

  • Загрузка данных: Загрузка данных из CSV-файлов с разделителем ;.
  • Отображение данных: Отображение загруженных данных в виде таблицы с возможностью редактирования.
  • Сортировка данных: Сортировка данных по выбранному столбцу в порядке возрастания или убывания.
  • Построение графиков:
    • Гистограмма
    • Диаграмма рассеяния
    • Линейный график
    • Столбчатая диаграмма
    • Круговая диаграмма
  • Генерация отчетов: Создание отчетов в формате PDF с данными из таблицы.
  • Сохранение: Сохранение данных в базу данных SQLite.
  • Открытие последнего файла: Автоматическое открытие последнего использованного CSV-файла при запуске приложения.

Структура проекта

client_data_analysing_tool/
├──📁core/
│  ├── main.py             # Точка входа в приложение
│  ├── main_window.py      # Основное окно приложения
│  └── table_window.py     # Отдельное окно таблицы данных
├──📁data_processing/
│  ├── data_handler.py     # Загрузка, сохранение, сортировка данных
│  └── report_handler.py   # Обработчик отчётов
├──📁frontend/
│  ├── gui_main_window.py  # UI-макет приложения 
│  └── align_delegate.py   # Делегат выравнивания текста в таблице
├──📁model/
│  └── pandas_model.py     # Модель отображения DataFrame в QTableView
├──📁plotting/
│  └── plot_handler.py     # Обработка и отрисовка графиков
├──📁static/
│  ├──📁fonts/
│  │  └── Secession_Text.ttf
│  ├──📁resources/
│  │  ├──📁resource_pathes/
│  │  │  └── resource_pathes.py   # Пути к иконкам
│  │  ├── arrow_down_24dp.svg
│  │  ├── choice_24dp.svg
│  │  ├── delete_24dp.svg
│  │  ├── file_path_24dp.svg
│  │  ├── fullscreen_24dp.svg
│  │  ├── graph_24dp.svg
│  │  ├── main_icon.ico
│  │  ├── report_24dp.svg
│  │  ├── save_24dp.svg
│  │  └── sort_24dp.svg
│  └──📁styles/
│    └── styles.py    # CSS-стили UI-элементов
└──

Зависимости

  • PyQt6
  • pandas
  • matplotlib
  • reportlab

Установка

1. Клонируйте репозиторий:

git clone <ваш_репозиторий>
cd client_data_analysing_tool

2. Создайте виртуальное окружение:

python -m venv .venv

source venv/bin/activate # Для Linux/macOS
venv\Scripts\activate    # Для Windows

3. Установите зависимости:

pip install -r requirements.txt

4. Запустите приложение:

python core/main.py

Использование

Загрузка данных:

  • Нажмите кнопку "Выбрать файл" и выберите CSV-файл для загрузки.
  • Путь к выбранному файлу отобразится в верхней части окна.
  • Данные из файла отобразятся в таблице.
  • Примечание: Файл должен быть в кодировке utf-8.

Сохранение данных:

  • Нажмите кнопку Сохранить данные для сохранения изменений в базу данных.

Сортировка данных:

  • Выберите столбец для сортировки из выпадающего списка.
  • Выберите порядок сортировки (возрастание или убывание) из выпадающего списка.
  • Нажмите кнопку Отсортировать для сортировки данных.

Построение графиков:

  • Выберите тип графика из выпадающего списка Тип графика:.
  • В зависимости от типа графика:
    • Для гистограммы, столбчатой и круговой диаграмм: выберите столбец для построения графика из выпадающего списка Столбец:.
    • Для диаграммы рассеяния и линейного графика: выберите ось X и Y из выпадающих списков.
  • Нажмите кнопку Построить график для отображения графика в отдельном окне.

Создание отчета:

  • Нажмите кнопку Создать отчёт для создания отчета в формате PDF.
  • Выберите место для сохранения отчета.

Раскрытие таблицы:

  • Нажмите кнопку Раскрыть таблицу для отображения данных в отдельном окне.

GUI приложения

final-program


Построение графиков

Гистограмма

histogram

Диаграмма рассеяния

scatterplot

Линейный график

line-chart

Столбчатая диаграмма

bar-diagram

Круговая диаграмма

pie-diagramm


Генерация отчетов

Пример сгенерированного отчёта

generated-report

Полный сгенированный отчет можно посмотреть по этой ссылке.


Планы на будущее

  • Разработка установщика для удобной установки приложения.
  • Разработка тёмной темы.
  • Расширить обрабатываемые форматы.

Полученный опыт

  • Умение работы в команде.
  • Работа с Python-фреймворком (PyQt6).
  • Ведение проектной и технической документации.
  • Управление контролем версий проекта (Git, GitHub).
  • Разработка десктоп фронтенд макета приложения (Qt Designer).
  • Управление базой данных (SQLite).
  • Разработка баз данных (Excel).
  • Построение графиков по CSV-данным (pandas, matplotlib).
  • Генерация отчётов по CSV-данным (reportlab).

Авторы проекта


Лицензия

Этот проект распространяется под лицензией MIT - смотри файл LICENSE для деталей.


About

Инструмент для анализа данных. Приложение позволяет пользователям загружать данные в формате CSV, фильтровать их, визуализировать ключевые показатели с помощью графиков и создавать отчеты.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5

Languages