ChatGPT как аналитик: 12 промтов для pandas, визуализации и очистки данных, которые работают

Представьте: вы открыли датасет, а там 40% пропусков, дубликаты, кривые типы и столбец с датами в формате «01/02/2023» и «Jan 2, 2023» одновременно. Знакомо? По данным опроса Anaconda State of Data Science 2022, специалисты по данным тратят до 45% времени на очистку и подготовку данных. Это не просто «неприятная необходимость» — это реальный тормоз проектов.

Хорошая новость: LLM вроде ChatGPT (GPT-4/4o) уже сейчас способны взять на себя рутину: сгенерировать код для pandas, предложить стратегию обработки выбросов, построить график и даже объяснить результаты заказчику. Но чтобы получить рабочий результат, нужны точные промты. В этой подборке — 12 проверенных шаблонов, которые превращают ChatGPT в полноценного ассистента аналитика. Каждый промт сопровождается примером запроса и пояснением, для какой задачи он подходит.

1. Разведочный анализ данных (EDA) за 5 минут

Задача: быстро понять структуру датасета, типы, пропуски и базовые статистики.

Промт:
"Ты — аналитик данных. У меня есть DataFrame df с данными о продажах. Напиши код на Python, который выведет: форму, типы столбцов, количество пропусков, описательные статистики для числовых и категориальных признаков. Используй pandas и выведи результат в читаемом виде."

Пример использования: ChatGPT сгенерирует код с df.info(), df.describe(), df.isnull().sum(), а также предложит value_counts() для категорий. Вы сразу увидите, где нужно чистить данные.

2. Умная очистка пропусков

Задача: обработать пропуски, не потеряв важную информацию.

Промт:
"В датасете df есть пропуски в столбцах age, income, city. Предложи стратегию заполнения: для числовых — медиана или среднее в зависимости от распределения, для категориальных — мода или отдельная метка 'Unknown'. Напиши код с комментариями, почему выбран каждый метод."

Пример: ChatGPT проанализирует распределение (если попросить df['age'].hist()), предложит медиану для age из-за выбросов и создаст новый признак income_missing для сохранения информации о пропуске.

3. Борьба с дубликатами и выбросами

Задача: удалить дубликаты и обработать аномалии.

Промт:
"Напиши код, который: 1) находит и удаляет полные дубликаты в df; 2) для столбца price определяет выбросы методом IQR и заменяет их на границы (winsorization). Объясни, почему выбран именно этот метод."

Пример: ChatGPT предложит использовать df.drop_duplicates() и scipy.stats.iqr с расчетом границ Q1 - 1.5*IQR и Q3 + 1.5*IQR. Такой подход сохраняет данные, но снижает влияние экстремальных значений.

4. Приведение типов и парсинг дат

Задача: преобразовать строки в даты, числа и категории.

Промт:
"В df столбец date содержит даты в разных форматах (например, '2023-01-01', '01/02/2023'). Напиши функцию на Python, которая приводит их к единому формату datetime, обрабатывая ошибки. Также преобразуй category в тип category и amount в float, удалив символы '$'."

Пример: ChatGPT предложит pd.to_datetime(df['date'], errors='coerce', infer_datetime_format=True) и df['amount'].str.replace('$', '').astype(float). Не забудьте проверить errors='coerce' — он превратит неудачные парсинги в NaT.

5. Feature Engineering с подсказками

Задача: создать новые признаки на основе существующих.

Промт:
"У меня есть столбцы registration_date и last_purchase_date. Предложи 3 новых признака, которые помогут предсказать отток клиентов, и напиши код для их создания с помощью pandas."

Пример: ChatGPT предложит days_since_last_purchase, purchase_frequency (если есть данные о транзакциях), is_active (флаг активности за последние 30 дней). Код будет с dt.days и pd.cut.

6. Группировка и агрегация без ошибок

Задача: сделать сводные таблицы по группам.

Промт:
"Сгруппируй данные df по region и product_category, посчитай суммарные продажи, средний чек и количество уникальных клиентов. Выведи результат в виде DataFrame, отсортированный по убыванию продаж."

Пример: ChatGPT сгенерирует df.groupby(['region','product_category']).agg({'sales':'sum', 'check':'mean', 'client_id':'nunique'}).reset_index().sort_values('sales', ascending=False). Работает без ошибок, если правильно указать названия столбцов.

7. Визуализация: графики, которые говорят

Задача: построить понятные графики для презентации.

Промт:
"Построй 3 графика для датасета df: 1) распределение целевой переменной target; 2) корреляционную матрицу числовых признаков; 3) boxplot зависимости price от category. Используй seaborn и matplotlib, настрой стиль и подписи."

Пример: ChatGPT напишет код с sns.histplot, sns.heatmap(df.corr(), annot=True) и sns.boxplot(x='category', y='price', data=df). Вы получите готовые изображения для отчёта.

8. Интерактивные графики с Plotly

Задача: создать динамические графики для дашборда.

Промт:
"Сделай интерактивный scatter plot с помощью Plotly Express: по оси X — date, по оси Y — sales, цвет — region, размер точки — profit. Добавь возможность наведения и фильтрации по региону."

Пример: ChatGPT предложит px.scatter(df, x='date', y='sales', color='region', size='profit', hover_data=['product']). Такой график легко встроить в Streamlit или Jupyter.

9. Автоматический отчёт с Sweetviz или pandas-profiling

Задача: быстро сгенерировать EDA-отчёт.

Промт:
"Напиши код, который создаёт автоматический отчёт по датасету df с помощью библиотеки ydata-profiling (бывшая pandas-profiling). Сохрани отчёт в HTML-файл."

Пример: ChatGPT сгенерирует: from ydata_profiling import ProfileReport; profile = ProfileReport(df); profile.to_file('report.html'). Отчёт включает статистики, корреляции, пропуски — идеально для быстрого ознакомления.

10. Объяснение результатов для заказчика

Задача: перевести технические выводы на бизнес-язык.

Промт:
"У меня есть результаты корреляционного анализа: sales сильно коррелирует с marketing_spend (r=0.85) и слабо с temperature (r=0.1). Напиши краткое пояснение для заказчика без технического жаргона, с акцентом на бизнес-действия."

Пример: ChatGPT выдаст: «Увеличение расходов на маркетинг strongly связано с ростом продаж. Температура не оказывает заметного влияния. Рекомендуется пересмотреть маркетинговый бюджет». Такой текст можно вставлять в отчёт.

11. Оптимизация кода pandas для больших данных

Задача: ускорить обработку, если данные не влезают в память.

Промт:
"Мой датасет df содержит 10 млн строк. Операции с pandas работают медленно. Предложи 3 способа оптимизации: использование категориальных типов, chunking при чтении и альтернативные библиотеки (Dask, Polars). Приведи пример кода."

Пример: ChatGPT порекомендует pd.read_csv(..., chunksize=100000), преобразование строк в category и переход на Polars для скорости. Проверьте на своих данных — часто ускорение в разы.

12. Промт для отладки кода анализа

Задача: исправить ошибку в существующем коде.

Промт:
"Я написал код для очистки данных, но получаю ошибку KeyError: 'column_name'. Вот код: [вставьте код]. Объясни причину и предложи исправление."

Пример: ChatGPT проанализирует код, укажет на опечатку в названии столбца или отсутствие столбца после предыдущих преобразований, и даст исправленный вариант. Экономит часы отладки.

№ Промт Основная задача
1 EDA за 5 минут Быстрый обзор данных
2 Очистка пропусков Заполнение пропусков
3 Дубликаты и выбросы Удаление аномалий
4 Типы и даты Приведение форматов
5 Feature Engineering Создание признаков
6 Группировка Сводные таблицы
7 Визуализация Графики для отчёта
8 Plotly Интерактивные графики
9 Автоотчёт Быстрый EDA
10 Объяснение заказчику Бизнес-интерпретация
11 Оптимизация Ускорение pandas
12 Отладка Исправление ошибок

Эти 12 промтов покрывают 90% рутинных задач аналитика. Главное — давать ChatGPT контекст: названия столбцов, типы данных, цель анализа. Чем точнее запрос, тем меньше итераций. И помните: LLM не заменяет аналитика, но снимает рутину, позволяя сосредоточиться на интерпретации и бизнес-выводах.

Попробуйте применить хотя бы 3 промта из подборки на текущем проекте — и вы удивитесь, сколько времени освободится. А если хотите системно прокачать навыки работы с данными и AI-ассистентами, обратите внимание на курсы по Python и Data Science на asibiont.com — там вы найдёте практические задания и поддержку экспертов.

← All posts

Comments