Проект представляет собой пайплайн для анализа синтетических данных, имитирующих поведение пользователей Instagram.
Реализован полный цикл работы с данными:
- Extract
- Transform
- Load
- Exploratory Data Analysis (EDA)
- Визуализация результатов через Streamlit
Используется синтетический датасет с Kaggle:
Social Media User Behavior & Lifestyle – Instagram
Ссылка на датасет:
https://drive.google.com/file/d/1HvdWy3m5SS66i3AV5V0k1Osu3RkKTbaV/view?usp=sharing
Файл для работы:
instagram_usage_lifestyle.csv
Цель проекта — построить воспроизводимый ETL-пайплайн и провести анализ синтетических данных, описывающих поведение пользователей Instagram.
Основные задачи:
- извлечение и очистка данных;
- преобразование и агрегация признаков;
- исследовательский анализ данных;
- визуализация результатов.
data/
raw/ # исходные данные (не хранятся в git)
processed/ # обработанные данные (не хранятся в git)
experiments/
eda.ipynb # исследовательский анализ данных
src/
etl/
extract.py # загрузка данных
transform.py # очистка и преобразование данных
load.py # сохранение обработанных данных
pipeline.py # объединение ETL-этапов
cli.py # CLI-интерфейс запуска ETL
streamlit_app/
app.py # Streamlit-приложение
requirements.txt
README.md
Загрузка исходного CSV-файла с проверкой структуры данных.
- приведение типов данных;
- обработка пропущенных значений;
- расчёт агрегированных показателей активности.
Сохранение обработанных данных в форматах:
- CSV
- Parquet
EDA выполнен в Jupyter Notebook и включает:
- первичный обзор данных;
- анализ распределений ключевых метрик;
- корреляционный анализ;
- простую сегментацию пользователей по уровню активности.
Файл:
experiments/eda.ipynb
Реализовано интерактивное Streamlit-приложение, позволяющее:
- фильтровать пользователей по уровню активности;
- анализировать распределение времени использования Instagram;
- просматривать срезы данных.
pip install -r requirements.txt
python -m src.cli \
--input data/raw/instagram_usage_lifestyle.csv \
--output data/processed
jupyter notebook experiments/eda.ipynb
streamlit run streamlit_app/app.py
- Python 3.11
- pandas
- numpy
- matplotlib / seaborn
- Streamlit
- Parquet (pyarrow)
- Все данные являются синтетическими.
- Проект ориентирован на демонстрацию Data Engineering-подхода, а не на ML-моделирование.