Сырые CSV в инсайты: промты, которые заменяют многочасовой EDA-марафон
Если вы когда-нибудь открывали свежий датасет в Jupyter и через два часа понимали, что всё ещё чистите пропуски и переименовываете колонки — эта подборка для вас. Разведочный анализ (EDA) — самая рутинная и одновременно самая важная часть работы с данными. По оценкам практиков, на подготовку и первичный анализ уходит до 70-80% времени проекта, и лишь оставшееся — на модели и выводы. Хорошая новость: LLM отлично справляются с шаблонной частью этой работы, если дать им правильный промт.
Ниже — 10 промтов, которые я собрал и отшлифовал на реальных проектах: от быстрой разведки структуры датасета до генерации готовых графиков на matplotlib и seaborn и интерпретации результатов на естественном языке. Каждый промт — готовый к копипасту, с пояснением задачи и примером использования. Для работы подойдёт ChatGPT, Claude, Gemini или локальная модель через Ollama — главное, прикрепить файл или вставить первые строки датасета.
1. Быстрый аудит структуры датасета
Задача: за 30 секунд понять, что вообще лежит в файле — типы, пропуски, дубликаты, диапазоны.
Промт:
Ты — senior data analyst. Вот первые 50 строк датасета и вывод df.info():
[ВСТАВЬТЕ ФРАГМЕНТ CSV И ВЫВОД df.info()]
Сделай:
1. Таблицу: колонка
| тип | % пропусков | примеры значений | возможные проблемы
2. Список подозрительных колонок (высокая кардинальность, константы, даты в строковом формате)
3. 3 гипотезы о том, что это за данные и как их собирали
4. Список вопросов, которые нужно задать владельцу данных
Отвечай сжато, без воды.
Пример: датасет с продажами интернет-магазина на 40 000 строк. Модель мгновенно заметила, что колонка order_date хранится как строка, а customer_id содержит 12% пропусков — это оказались гостевые заказы. Экономия: около часа ручной проверки.
2. Генерация кода для очистки данных
Задача: получить рабочий pandas-скрипт очистки под конкретный датасет, а не общий туториал.
Промт:
Напиши pandas-скрипт очистки для датасета со следующей структурой:
[ОПИСАНИЕ КОЛОНОК И ТИПОВ]
Требования:
- обработать пропуски: числовые — медианой, категориальные — модой или отдельной меткой 'unknown'
- привести даты к datetime64
- удалить полные дубликаты
- выбросить выбросы по методу IQR для колонок [СПИСОК]
- каждое действие обернуть в функцию с docstring
- в конце вывести отчёт: сколько строк удалено/изменено на каждом шаге
Используй только pandas и numpy.
Пример: для лога веб-трафика такой скрипт сократил ручную чистку с двух часов до 15 минут ревью кода. Важно: всегда проверяйте логику удаления выбросов — модель не знает контекст вашего бизнеса.
3. EDA-отчёт в стиле «одна кнопка»
Задача: получить полный разведочный отчёт по всем числовым и категориальным признакам.
Промт:
Проведи разведочный анализ датасета. Данные: [ВСТАВЬТЕ df.describe() И df.dtypes]
Сформируй структурированный отчёт:
1. Распределения: для каждой числовой колонки — форма (симметрия, эксцесс), есть ли бимодальность
2. Корреляции: топ-10 пар признаков по абсолютной корреляции Пирсона и Спирмена, с интерпретацией
3. Категориальные: распределение категорий, редкие уровни (<1%)
4. Мультиколлинеарность: пары с
|r| > 0.8
5. Итог: 5 самых важных наблюдений для дальнейшего моделирования
Формат — markdown с таблицами.
Пример: на датасете о недвижимости отчёт выявил, что area и rooms коррелируют на 0.87 — классическая мультиколлинеарность, которую легко пропустить вручную.
4. Визуализация на matplotlib и seaborn
Задача: быстро получить набор графиков под конкретную гипотезу, а не перебирать параметры вручную.
Промт:
Напиши Python-код для визуализации. Данные: [ОПИСАНИЕ КОЛОНОК]
Нужны графики:
1. Гистограмма + KDE для [КОЛОНКА]
2. Boxplot [ЧИСЛОВАЯ] по группам [КАТЕГОРИАЛЬНАЯ]
3. Тепловая карта корреляций (только нижний треугольник)
4. Scatter [X] vs [Y] с линией регрессии и раскраской по [КАТЕГОРИЯ]
Требования: subplots 2x2, единый стиль seaborn-v0_8-whitegrid, подписи осей на русском, заголовок с размером шрифта 14, сохранить в PNG с dpi=150.
Пример: на датасете о клиентах телекома такой код сразу показал, что отток выше у клиентов с месячным контрактом — гипотеза подтвердилась за минуты, а не за час возни с plt.subplots.
5. Проверка статистических гипотез
Задача: подобрать корректный статистический тест и интерпретировать результат.
Промт:
У меня две группы: [ОПИСАНИЕ] с выборками [N1] и [N2].
Метрика: [ЧТО ИЗМЕРЯЕМ]. Распределение: [НОРМАЛЬНОЕ/НЕТ/НЕИЗВЕСТНО].
1. Какой тест выбрать и почему (t-test, Mann-Whitney, chi-square, ANOVA)?
2. Проверь предпосылки: нормальность (Shapiro-Wilk), равенство дисперсий (Levene)
3. Напиши код на scipy.stats
4. Интерпретируй: p-value, размер эффекта (Cohen's d), практическая значимость
5. Что делать, если допущения нарушены
Пример: для A/B-теста конверсии модель корректно указала на chi-square вместо t-test, потому что метрика бинарная — типовая ошибка новичков.
6. Feature Engineering с обоснованием
Задача: получить идеи новых признаков, а не механический one-hot.
Промт:
Датасет: [ОПИСАНИЕ]. Целевая переменная: [ЧТО ПРЕДСКАЗЫВАЕМ]. Задача: [КЛАССИФИКАЦИЯ/РЕГРЕССИЯ].
Предложи 10 новых признаков:
- для каждой колонки: производные (отношения, разности, агрегаты)
- временные: день недели, лаг, rolling mean
- категориальные: target encoding, частотное кодирование
Для каждого признака: зачем он нужен, как считается, риск утечки данных.
Отсортируй по ожидаемой полезности.
Пример: для задачи прогноза оттока модель предложила признак «отношение платежа к среднему по сегменту» — он оказался в топ-3 по важности в финальной модели.
7. Автоматический анализ временных рядов
Задача: быстро проверить стационарность, сезонность и тренд.
Промт:
Данные: временной ряд [ОПИСАНИЕ] с частотой [ДЕНЬ/МЕСЯЦ].
1. Напиши код для декомпозиции (statsmodels seasonal_decompose)
2. Тесты на стационарность: ADF и KPSS — интерпретируй оба
3. Определи сезонность: период, амплитуда
4. Проверь на структурные сдвиги
5. Рекомендуй: нужно ли дифференцирование, какой порядок ARIMA
Визуализируй: тренд, сезонность, остатки.
Пример: на ряде продаж по месяцам тест ADF показал нестационарность, KPSS подтвердил — потребовалось дифференцирование первого порядка. Без этого модель бы systematically ошибалась.
8. Интерпретация результатов модели
Задача: перевести вывод модели на язык бизнеса.
Промт:
Модель: [ТИП]. Метрики: [ROC-AUC, F1, RMSE и т.д.].
Топ-10 признаков по важности: [СПИСОК С ЗНАЧЕНИЯМИ].
SHAP-значения для 5 примеров: [ВСТАВЬТЕ].
1. Объясни метрики на языке бизнеса (без формул)
2. Что говорят топ-признаки о поведении данных?
3. 3 практические рекомендации на основе модели
4. Какие ограничения и риски у этой модели?
5. Что проверить перед деплоем?
Пример: для модели кредитного скоринга такой промт помог сформулировать вывод «модель штрафует за недавние запросы на кредиты» — это легло в основу отчёта для риск-комитета.
9. Ревью чужого кода анализа
Задача: найти ошибки в EDA-ноутбуке коллеги или в своём старом.
Промт:
Проверь код анализа данных на ошибки:
[ВСТАВЬТЕ КОД]
Ищи:
1. Утечки данных (target leakage) в feature engineering
2. Неверные статистические тесты
3. Игнорирование пропусков (dropna без анализа)
4. Проблемы с масштабом (StandardScaler после train/test split)
5. Логические ошибки в агрегациях
6. Ошибки в визуализации (искажающие оси, wrong bins)
Для каждой проблемы: строка, объяснение, исправление.
Пример: на ревью ноутбука модель нашла, что StandardScaler обучался на всём датасете до split — классическая утечка, которая завышала метрики на 3-5%.
10. Автогенерация README для датасета
Задача: задокументировать датасет для команды или публикации.
Промт:
Составь документацию для датасета на основе:
- df.describe(), df.dtypes, df.head(20)
- контекст: [ОТКУДА ДАННЫЕ, ЗАЧЕМ СОБРАНЫ]
Структура README:
1. Название и назначение
2. Источник и дата сбора
3. Таблица колонок: имя
| тип | описание | единицы | допустимый диапазон
4. Известные проблемы (пропуски, выбросы)
5. Примеры использования (код)
6. Лицензия и контакты
Формат — markdown.
Пример: такой README спас команду от повторных вопросов «а что значит колонка flag_x?» — документация генерируется за минуту, а правится за пять.
Что важно помнить
Промты — это ускоритель, а не замена мышления. Модель не знает контекст вашего бизнеса, не видит data drift и не несёт ответственности за ошибки. Поэтому правило простое: LLM делает черновик — вы делаете ревью. Особенно это касается статистических тестов и feature engineering, где неверное допущение стоит дорого.
Для актуальности синтаксиса всегда сверяйтесь с официальной документацией: pandas, matplotlib, seaborn, scipy.stats, statsmodels. Эти библиотеки меняются, и промт 2024 года может дать устаревший код.
Попробуйте сегодня хотя бы три промта из подборки на своём текущем датасете — начните с аудита структуры и визуализации. Через полчаса у вас будет картина данных, на которую раньше уходил день. А если захотите системно прокачать навык работы с данными и LLM — изучайте инструменты, читайте исходники библиотек и не бойтесь просить модель объяснить её же выводы. Именно так EDA перестаёт быть марафоном и становится диалогом.
Комментарии