Бот «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.
