ChatGPT как второй пилот аналитика: 14 промтов для pandas, визуализации и очистки данных, которые действительно экономят часы

Каждый, кто хоть раз открывал датасет с сотней колонок и миллионом строк, знает это чувство: вроде бы pandas установлен, но с чего начать — непонятно. А ещё есть дедлайн, заказчик и гора «грязных» данных. По данным опроса Anaconda (State of Data Science 2023), более 40% времени аналитики тратят на подготовку и очистку данных, а не на моделирование. Хорошая новость: LLM вроде ChatGPT отлично справляются с рутиной, если правильно формулировать промты.

В этой подборке — 14 проверенных промтов, которые превращают ChatGPT в ассистента аналитика. Мы разберём три уровня: базовые (для быстрого старта), продвинутые (для сложных преобразований) и экспертные (для объяснения результатов и оптимизации). Каждый промт сопровождается примером кода и пояснением, как его адаптировать под свои задачи.

Базовые промты: разведка и первые шаги

1. Быстрый обзор датасета

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

Промт:

Ты — аналитик данных. У меня есть DataFrame df с такими колонками: [список]. Напиши код на pandas, который выведет:
- первые 5 строк
- info()
- describe() для числовых и категориальных колонок
- количество пропусков по колонкам в процентах
- количество уникальных значений для каждой колонки
Оформи вывод в виде читаемых таблиц.

Пример результата: ChatGPT сгенерирует функцию, которая вернёт словарь с несколькими DataFrame. Вы сразу увидите, что, например, в колонке age 15% пропусков, а city имеет 200 уникальных значений — потенциальный кандидат на категоризацию.

2. Генерация синтетического датасета для тестов

Задача: нужны тестовые данные, чтобы отладить пайплайн, не трогая продакшн.

Промт:

Создай синтетический датасет на 10 000 строк с колонками: user_id (int), signup_date (datetime), revenue (float, 0-1000), plan (категориальный: free, basic, pro). Добавь 5% пропусков в revenue и выбросы. Верни код с фиксированным seed.

Пример результата:

import numpy as np
import pandas as pd
np.random.seed(42)
n = 10000
df = pd.DataFrame({
    'user_id': np.arange(n),
    'signup_date': pd.date_range('2023-01-01', periods=n, freq='H'),
    'revenue': np.random.uniform(0, 1000, n),
    'plan': np.random.choice(['free', 'basic', 'pro'], n, p=[0.6, 0.3, 0.1])
})
df.loc[df.sample(frac=0.05).index, 'revenue'] = np.nan

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

Задача: получить HTML-отчёт для команды без ручного кодинга.

Промт:

Напиши код, который использует pandas-profiling (ydata-profiling) для генерации отчёта по df и сохраняет его в report.html. Добавь обработку ошибок, если библиотека не установлена.

Пример результата: ChatGPT предложит установку через pip и обёртку с try/except. Отчёт включает корреляции, распределения и предупреждения о качестве данных.

Продвинутые промты: очистка и преобразования

4. Умная обработка пропусков

Задача: заполнить пропуски не средним, а с учётом групп.

Промт:

В df есть колонки: age, income, education. Пропуски в income. Заполни их медианой по группе education, а если группа пуста — общей медианой. Напиши функцию с пояснениями.

Пример результата:

def fill_income(df):
    median_by_edu = df.groupby('education')['income'].transform('median')
    overall_median = df['income'].median()
    df['income'] = df['income'].fillna(median_by_edu).fillna(overall_median)
    return df

5. Детекция и замена выбросов

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

Промт:

Напиши код, который находит выбросы в колонке revenue методом IQR и заменяет их на границы (winsorization). Выведи, сколько значений было изменено.

Пример результата: ChatGPT сгенерирует расчёт квартилей, границ и clip. Вы увидите, что 2.3% значений были скорректированы — это безопаснее, чем удаление строк.

6. Парсинг дат из строк

Задача: преобразовать строки в datetime с обработкой нестандартных форматов.

Промт:

В колонке date строки вида '2023-01-01', '01/02/2023', 'Jan 3, 2023'. Напиши функцию, которая приводит их к datetime, используя dateutil.parser с fallback.

Пример результата:

from dateutil import parser
def parse_date(s):
    try:
        return parser.parse(s)
    except:
        return pd.NaT
df['date_parsed'] = df['date'].apply(parse_date)

7. Группировка и агрегация с несколькими метриками

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

Промт:

Сгруппируй df по user_id и посчитай: количество заказов, сумму revenue, средний чек, дату последнего заказа. Отсортируй по сумме revenue.

Пример результата:

agg = df.groupby('user_id').agg(
    orders=('order_id', 'count'),
    total_revenue=('revenue', 'sum'),
    avg_check=('revenue', 'mean'),
    last_order=('order_date', 'max')
).sort_values('total_revenue', ascending=False)

8. Слияние датасетов с разными ключами

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

Промт:

Есть df1 с колонкой user_id и df2 с колонкой uid. Объедини их с сохранением всех строк из df1, добавь суффиксы _left и _right. Выведи, сколько строк не нашли соответствия.

Пример результата: ChatGPT напишет merge с left_on='user_id', right_on='uid', how='left' и подсчитает NaN в ключевых колонках.

Экспертные промты: объяснение и оптимизация

9. Объяснение корреляций для заказчика

Задача: перевести матрицу корреляций на бизнес-язык.

Промт:

У меня есть матрица корреляций df.corr(). Напиши текст для отчёта, который объяснит три самые сильные корреляции (не техническим языком). Избегай слова «корреляция», используй «связь».

Пример результата: ChatGPT сгенерирует абзац: «Чем выше доход клиента, тем чаще он выбирает премиум-план (связь 0.78). Это значит, что для увеличения продаж премиума стоит фокусироваться на сегменте с доходом выше среднего».

10. Оптимизация памяти DataFrame

Задача: уменьшить потребление памяти без потери данных.

Промт:

Напиши функцию, которая автоматически понижает типы: int64 → int32/int16, float64 → float32, object → category для колонок с малым числом уникальных. Выведи, сколько памяти сэкономлено.

Пример результата:

def reduce_mem(df):
    start_mem = df.memory_usage().sum() / 1024**2
    for col in df.columns:
        if df[col].dtype == 'int64':
            df[col] = pd.to_numeric(df[col], downcast='integer')
        elif df[col].dtype == 'float64':
            df[col] = pd.to_numeric(df[col], downcast='float')
        elif df[col].dtype == 'object':
            if df[col].nunique() / len(df) < 0.5:
                df[col] = df[col].astype('category')
    end_mem = df.memory_usage().sum() / 1024**2
    print(f'Память: {start_mem:.2f} → {end_mem:.2f} MB')
    return df

11. Визуализация: график, который поймёт заказчик

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

Промт:

Построй график распределения revenue по планам (free, basic, pro) с помощью seaborn. Добавь подписи, заголовок и аннотацию с медианами. Сохрани в PNG.

Пример результата:

import seaborn as sns
import matplotlib.pyplot as plt
sns.boxplot(data=df, x='plan', y='revenue')
plt.title('Распределение выручки по планам')
plt.annotate('Медиана pro: $500', xy=(2, 500), xytext=(2.2, 800),
             arrowprops=dict(arrowstyle='->'))
plt.savefig('revenue_by_plan.png', dpi=150)

12. Интерактивный дашборд на Plotly

Задача: сделать график, который можно покрутить.

Промт:

Создай интерактивный scatter plot с Plotly Express: x=date, y=revenue, цвет по plan, размер по количеству заказов. Добавь hover-данные и слайдер по датам.

Пример результата: ChatGPT сгенерирует код с px.scatter и fig.update_layout(xaxis=dict(rangeslider=dict(visible=True))).

13. Пайплайн очистки в одну функцию

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

Промт:

Объедини все шаги: обработка пропусков, выбросы, парсинг дат, понижение типов — в одну функцию clean_data(df). Добавь логирование каждого шага.

Пример результата: функция с print или logging на каждом этапе — удобно отлаживать и передавать коллегам.

14. Генерация тестов для пайплайна

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

Промт:

Напиши 5 unit-тестов на функцию clean_data с использованием pytest: проверь, что пропуски заполнены, типы понижены, выбросы обработаны.

Пример результата: ChatGPT создаст тесты с фикстурами и assert. Это повышает надёжность и ускоряет рефакторинг.

Как использовать эти промты эффективно

Главное правило: чем конкретнее вы описываете контекст (названия колонок, типы, цель), тем точнее ответ. Не бойтесь уточнять: «Перепиши без использования lambda» или «Добавь обработку ошибок». ChatGPT не заменит аналитика, но снимет рутину, оставив время на интерпретацию и бизнес-выводы.

Попробуйте применить хотя бы три промта из этой подборки на своём текущем проекте — и вы удивитесь, сколько часов освободится. А если хотите системно прокачать навыки работы с данными и AI-инструментами, обратите внимание на практические курсы, где разбираются реальные кейсы. Главное — практика и ещё раз практика.

← Все статьи

Комментарии

Читайте также

SEO-промты, которые реально работают: как выжать максимум из ИИ для продвижения

18 августа 2026

Промышленная аналитика на новом уровне: интеграция Modbus/TCP (PLC, RTU) с AI-агентом ASI Biont

13 июля 2026

QA Automation Engineer: как AI меняет обучение автоматизации тестирования в 2026

19 июня 2026

Интеграция GetCourse с AI-агентами: как ASI Biont автоматизирует управление студентами без кода

1 июля 2026

Stripe + AI-агент: Как ASI Biont автоматизирует платежи и финансы без кода и панелей управления

25 июня 2026

Поступление в Кембридж: PAT (Тест на способности по физике) — Оксфорд: структурированный курс, следующий официальной программе

7 августа 2026

Мобильная разработка с нуля до публикации в App Store: как AI-обучение на Asibiont превращает идеи в приложения

27 июля 2026

Как связать ConvertKit с AI-агентом за 5 минут: автоматизация email-маркетинга без кода и лишних панелей

9 июля 2026

Почему каждому HR-специалисту нужен курс «HR и управление талантами» на asibiont.com

16 августа 2026