Данный проект представляет собой интерактивный дашборд для анализа продаж в велосипедном магазине. Дашборд создан с использованием современных инструментов анализа данных и предназначен для визуализации и исследования различных аспектов продаж, таких как объемы продаж по продуктам, клиентам, магазинам и категориям продуктов.
Автор проекта: Behzod Jumaev Цель проекта: Создание интерактивного дашборда и его деплой в рамках курсового проекта по курсу "Анализ Данных".
- DuckDB: Колонко-ориентированная СУБД для хранения и обработки данных.
- Pandas: Библиотека для обработки и анализа данных в Python.
- Plotly: Библиотека для создания интерактивных графиков и диаграмм.
- Streamlit: Фреймворк для создания веб-приложений для машинного обучения и анализа данных на Python.
README.md
: Этот файл с описанием проекта, его целей, используемых инструментов и инструкций по запуску.source/
: Папка с исходными данными в формате CSV:brands.csv
categories.csv
customers.csv
orders.csv
order_items.csv
products.csv
staffs.csv
stores.csv
stocks.csv
queries/
: Папка с SQL-скриптами:create_tables.sql
: Скрипт создания таблиц в базе данных.create_views.sql
: Скрипт создания представлений (вьюшек).select_queries.sql
: Скрипты запросов к вьюшкам для создания датафреймов.
my.db
: Локальный файл базы данных DuckDB.ddl.py
: Модуль для создания таблиц и загрузки данных из файлов источников в базу данных.etl.py
: Модуль для извлечения данных из базы данных и создания pandas DataFrame.main.py
: Модуль для создания и запуска интерактивного дашборда с использованием Streamlit.requirements.txt
: Файл со списком используемых библиотек и их версий.
git clone https://github.com/behzod33/course_project_lib.git
cd course_project_lib
python -m venv venv
source venv/bin/activate # Для Linux/MacOS
venv\Scripts\activate # Для Windows
pip install -r requirements.txt
python ddl.py
streamlit run main.py
Дашборд включает в себя следующие элементы:
- "Интерактивный Дашборд Продаж"
- Период заказа: Фильтр по диапазону дат заказов.
- Имя клиента: Фильтр по имени клиента.
- Название магазина: Выбор магазина из списка.
- Название продукта: Множественный выбор продуктов.
- Категория продукта: Множественный выбор категорий продуктов.
- Общий объем продаж по продуктам: Столбчатая диаграмма.
- Общий объем продаж по клиентам: Столбчатая диаграмма.
- Количество заказов по датам: Линейный график.
- Средняя скидка по продуктам: Столбчатая диаграмма.
- Общий объем продаж по магазинам: Столбчатая диаграмма.
- Общий объем продаж по категориям: Столбчатая диаграмма.
- Детали заказов: Отображение данных о заказах в табличном формате.
-
Фильтрация данных:
- Используйте элементы управления на боковой панели для фильтрации данных на дашборде.
- Изменения фильтров автоматически обновляют диаграммы и таблицу.
-
Интерактивность диаграмм:
- Наведите курсор на элементы диаграмм, чтобы увидеть подробные данные.
- Вы можете увеличивать и уменьшать масштаб графиков для удобства анализа.
-
Обновление данных:
- Если вы изменили данные в исходных CSV-файлах, запустите
ddl.py
снова, чтобы обновить базу данных и дашборд.
- Если вы изменили данные в исходных CSV-файлах, запустите
- Python: Версия 3.12.3 или выше.
- Установленные библиотеки: Все зависимости перечислены в файле
requirements.txt
.
Документирование кода: Каждый модуль, функция и переменная в проекте задокументированы для облегчения понимания и поддержки кода. Стиль кодирования: Код форматирован в соответствии со стандартами PEP 8 для Python. Обработка ошибок: В коде предусмотрена базовая обработка ошибок и вывод информативных сообщений.
https://github.com/behzod33/course_project_lib.git