Skip to content

About

Telegram-бот для разведочного анализа CSV (pandas, matplotlib, Excel-отчёт) и 13 задач на Python с автотестами

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram-бот для разведочного анализа CSV и 13 задач на Python с автотестами

Python 3.13 Telegram Bot pandas pytest

Гистограммы из ответа бота на наборе Palmer Penguins

Бот «CSV-аналитик» принимает таблицу и возвращает сводку, описательную статистику, графики и Excel-отчёт. Рядом — 13 задач хендбука «Основы Python», каждая с автотестами и сверкой с независимым эталоном.

Задача и данные

Бот: пользователь присылает CSV-файл документом (до 20 МБ), бот сам определяет разделитель, кодировку и формат чисел и отвечает текстовой сводкой, альбомом графиков и файлом eda_report.xlsx; демо — набор Palmer Penguins. Задачи — из хендбука Яндекс Образования «Основы Python», в формате проверяющей системы: ввод через input(), вывод через print().

Результат

Бот покрыт 26 тестами без сети; 13 задач проверены 70 случаями и 12 015 сверками с независимыми эталонами.

  • Бот понимает разделители , ; табуляцию и |, кодировки UTF-8 (в том числе с BOM) и Windows-1251, числа с десятичной запятой и пробелами между разрядами, отбрасывает служебный столбец-нумерацию, даёт понятные сообщения об ошибках (пустой файл, Excel вместо CSV, файл больше 20 МБ).
  • Логика анализа (analyzer.py) не зависит от Telegram: её можно вызвать из Jupyter или проверить офлайн (make_demo.py).
  • Эталоны для массовых сверок задач: numpy.roots, numpy.base_repr, полный перебор клеток доски, itertools.combinations; для задачи с HTTP-запросами тест поднимает локальный сервер.
  • Презентация бота, пример ответа бота, отчёты по задачам — КТ1 и КТ2.

Стек

Python 3.13 · python-telegram-bot (asyncio) · pandas · NumPy · matplotlib · openpyxl · pytest · unittest

Структура и запуск

├── KT3/csv_stats_bot/   # бот: bot.py, analyzer.py, make_demo.py, tests/, demo_output/ (свой README)
├── KT1/, KT2/           # решения задач
├── tests/               # тесты задач и сводка последнего прогона results.json
├── reports/             # отчёты по КТ1 и КТ2
├── docs/assignments.md  # список задач, устройство тестов, результаты проверки
└── requirements.txt
git clone https://github.com/Meta1rus/python-data-analysis.git && cd python-data-analysis
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python -m pytest -q                  # тесты задач
cd KT3/csv_stats_bot
pip install -r requirements-dev.txt
python -m pytest -q                  # тесты бота
python make_demo.py                  # ответ бота на демо-набор → demo_output/

Чтобы запустить бота в Telegram, нужен токен от @BotFather в файле .env (образец — .env.example); пошагово — в README бота.


Выполнено в рамках курса «Python для анализа данных» магистратуры ПМИ ПГНИУ, 2026.

About

Telegram-бот для разведочного анализа CSV (pandas, matplotlib, Excel-отчёт) и 13 задач на Python с автотестами

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages