Сократите время на отчёты в 5 раз: 12 промтов для Data Science, которые изменят ваш рабочий процесс

Вы тратите часы на очистку данных, построение графиков и объяснение результатов? Знакомая ситуация: вы написали сложный SQL-запрос, сделали EDA в Jupyter Notebook, а потом ещё полдня оформляете презентацию для стейкхолдеров. Но что, если я скажу, что большую часть этой рутины можно делегировать нейросети? В этой статье я собрал 12 проверенных промтов, которые помогут вам ускорить работу с данными в разы — от первичной очистки до создания интерактивных дашбордов. Вы узнаете, как правильно формулировать запросы, чтобы получать рабочий код, и как адаптировать их под свои задачи. Поехали!

Категория 1: Базовые промты — для ежедневных задач

Промт 1: Автоматическая очистка данных

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

Промт:

У меня есть DataFrame с колонками: [перечислите колонки]. Приведи его к чистому виду: обработай пропуски (укажите стратегию), удали дубликаты, приведи типы данных к корректным (даты, числа, категории). Также определи и обработай выбросы методом IQR. Выведи код на Python с использованием pandas и numpy.

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

import pandas as pd
import numpy as np

def clean_data(df):
    # Удаление дубликатов
    df = df.drop_duplicates()

    # Приведение типов
    df['date'] = pd.to_datetime(df['date'])
    df['value'] = pd.to_numeric(df['value'], errors='coerce')

    # Обработка пропусков
    df['value'] = df['value'].fillna(df['value'].median())

    # Обработка выбросов методом IQR
    Q1 = df['value'].quantile(0.25)
    Q3 = df['value'].quantile(0.75)
    IQR = Q3 - Q1
    lower_bound = Q1 - 1.5 * IQR
    upper_bound = Q3 + 1.5 * IQR
    df = df[(df['value'] >= lower_bound) & (df['value'] <= upper_bound)]

    return df

Совет: Уточняйте стратегию обработки пропусков: для временных рядов лучше интерполяция, для категориальных — мода.

Промт 2: Быстрый разведочный анализ (EDA)

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

Промт:

Проведи разведочный анализ данных для DataFrame с колонками [перечислите]. Выдай код на Python, который выводит: описательные статистики для числовых колонок, количество уникальных значений для категориальных, матрицу корреляций (heatmap), гистограммы для всех числовых колонок, boxplot для выявления выбросов. Используй pandas, matplotlib, seaborn.

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

import matplotlib.pyplot as plt
import seaborn as sns

print(df.describe())
print(df.nunique())

plt.figure(figsize=(12, 8))
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
plt.show()

df.hist(figsize=(12, 10), bins=30)
plt.tight_layout()
plt.show()

plt.figure(figsize=(10, 6))
sns.boxplot(data=df.select_dtypes(include='number'))
plt.xticks(rotation=45)
plt.show()

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

Промт 3: Генерация SQL-запросов

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

Промт:

Напиши SQL-запрос для PostgreSQL, который выводит: сумму продаж по месяцам за последний год, с группировкой по категории товара, и сортировкой по дате. Таблицы: sales(id, product_id, amount, date), products(id, category). Учти, что в таблице sales есть колонка status, которую нужно отфильтровать по значению 'completed'.

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

SELECT 
    DATE_TRUNC('month', s.date) AS month,
    p.category,
    SUM(s.amount) AS total_sales
FROM sales s
JOIN products p ON s.product_id = p.id
WHERE s.status = 'completed'
  AND s.date >= CURRENT_DATE - INTERVAL '1 year'
GROUP BY month, p.category
ORDER BY month, p.category;

Совет: Чем точнее вы опишете схему таблиц и условия, тем качественнее будет запрос.

Категория 2: Продвинутые промты — для сложных задач

Промт 4: Автоматическое построение дашборда

Задача: Создать интерактивный дашборд на Python (Plotly Dash) для отслеживания KPI.

Промт:

Создай дашборд на Dash (Python) с двумя графиками: линейный график динамики выручки по месяцам и bar chart по категориям товаров. Данные хранятся в CSV-файле с колонками: date, category, revenue. Добавь фильтр по категории в виде dropdown. Используй plotly.express для графиков. Выдай полный код приложения.

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

import dash
from dash import dcc, html, Input, Output
import plotly.express as px
import pandas as pd

df = pd.read_csv('data.csv')
df['date'] = pd.to_datetime(df['date'])

app = dash.Dash(__name__)

app.layout = html.Div([
    dcc.Dropdown(
        id='category-dropdown',
        options=[{'label': c, 'value': c} for c in df['category'].unique()],
        value=df['category'].unique()[0]
    ),
    dcc.Graph(id='revenue-line'),
    dcc.Graph(id='category-bar')
])

@app.callback(
    Output('revenue-line', 'figure'),
    Output('category-bar', 'figure'),
    Input('category-dropdown', 'value')
)
def update_graphs(selected_category):
    filtered_df = df[df['category'] == selected_category]
    line_fig = px.line(filtered_df, x='date', y='revenue', title='Revenue over time')
    bar_fig = px.bar(filtered_df, x='category', y='revenue', title='Revenue by category')
    return line_fig, bar_fig

if __name__ == '__main__':
    app.run_server(debug=True)

Совет: Укажите конкретные типы графиков и элементы управления, чтобы дашборд соответствовал вашим ожиданиям.

Промт 5: Объяснение модели машинного обучения

Задача: Интерпретировать результаты модели (SHAP, LIME) для нетехнической аудитории.

Промт:

У меня есть обученная модель RandomForestClassifier для задачи бинарной классификации. Я хочу объяснить её предсказания с помощью SHAP. Напиши код на Python, который вычисляет SHAP values для тестовой выборки и строит summary plot. Также дай текстовое объяснение, как интерпретировать этот график для заинтересованных сторон.

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

import shap

explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_test)

shap.summary_plot(shap_values, X_test, plot_type="bar")
shap.summary_plot(shap_values[1], X_test)  # для класса 1

Текстовое объяснение: SHAP summary plot показывает, как каждый признак влияет на предсказание: чем длиннее полоса, тем сильнее влияние; красный цвет — признак увеличивает вероятность класса, синий — уменьшает.

Совет: Попросите нейросеть сгенерировать и текстовое объяснение на русском для включения в отчёт.

Промт 6: Оптимизация кода для обработки больших данных

Задача: Переписать код так, чтобы он работал быстрее на больших объёмах данных.

Промт:

Вот мой код на Python для обработки DataFrame (приложите код). Он работает медленно на 10 млн строк. Предложи оптимизированную версию, используя векторизацию, избегая циклов, и, если нужно, применяя multiprocessing или Dask. Объясни, какие изменения ты сделал и почему.

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

# Исходный код с циклом
for index, row in df.iterrows():
    df.loc[index, 'new_col'] = row['a'] * row['b']

# Оптимизированный
import numpy as np
df['new_col'] = df['a'].to_numpy() * df['b'].to_numpy()

Совет: Указывайте размер данных и текущее время выполнения — так нейросеть точнее подберёт стратегию.

Категория 3: Экспертные промты — для профессионалов

Промт 7: Автоматическая генерация отчёта в формате Markdown

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

Промт:

Создай Markdown-отчёт по результатам анализа данных. Включи: краткое резюме, основные метрики (таблица), графики (вставь изображения), интерпретацию результатов и рекомендации. Используй данные из [укажите источник]. Стиль — деловой, но понятный.

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

# Отчёт о продажах за Q2 2026

## Резюме
Во втором квартале продажи выросли на 15% по сравнению с Q1, в основном за счёт категории "Электроника".

## Основные метрики

| Метрика | Q1 | Q2 | Изменение |
|---------|----|----|-----------|
| Выручка | 1.2M | 1.38M | +15% |
| Кол-во заказов | 1500 | 1725 | +15% |
| Средний чек | 800 | 800 | 0% |

![График динамики](revenue_q2.png)

## Интерпретация
Рост продаж связан с запуском новой линейки смартфонов. Рекомендуется увеличить поставки и расширить рекламный бюджет на эту категорию.

Совет: Попросите нейросеть сразу вставить код для генерации графиков и сохранения их в файл.

Промт 8: Создание пользовательской функции для повторяющихся задач

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

Промт:

Напиши функцию на Python, которая принимает DataFrame, название колонки с датами, и возвращает новые колонки: год, месяц, день недели, квартал. Функция должна обрабатывать ошибки, если колонка не найдена или формат даты неверный. Добавь docstring и пример использования.

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

import pandas as pd

def extract_date_features(df, date_col):
    """
    Извлекает год, месяц, день недели и квартал из колонки с датами.

    Параметры:
    df (pd.DataFrame): DataFrame с данными.
    date_col (str): Название колонки с датами.

    Возвращает:
    pd.DataFrame: DataFrame с добавленными колонками.
    """
    try:
        df[date_col] = pd.to_datetime(df[date_col])
    except KeyError:
        raise KeyError(f"Колонка '{date_col}' не найдена")
    except Exception as e:
        raise ValueError(f"Ошибка преобразования даты: {e}")

    df['year'] = df[date_col].dt.year
    df['month'] = df[date_col].dt.month
    df['day_of_week'] = df[date_col].dt.dayofweek
    df['quarter'] = df[date_col].dt.quarter
    return df

# Пример использования:
# df = extract_date_features(df, 'order_date')

Совет: Просите покрыть функцию обработкой исключений — это сэкономит часы отладки позже.

Промт 9: Автоматизация подготовки данных для моделирования

Задача: Создать пайплайн предобработки данных с использованием scikit-learn Pipeline.

Промт:

Создай sklearn Pipeline для предобработки данных перед обучением модели. Включи: импутацию пропусков (медиана для числовых, most_frequent для категориальных), стандартизацию числовых колонок, one-hot encoding для категориальных. Выведи код с использованием ColumnTransformer.

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

from sklearn.pipeline import Pipeline
from sklearn.compose import ColumnTransformer
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder

numeric_features = ['age', 'income']
categorical_features = ['city', 'occupation']

numeric_transformer = Pipeline(steps=[
    ('imputer', SimpleImputer(strategy='median')),
    ('scaler', StandardScaler())
])

categorical_transformer = Pipeline(steps=[
    ('imputer', SimpleImputer(strategy='most_frequent')),
    ('onehot', OneHotEncoder(handle_unknown='ignore'))
])

preprocessor = ColumnTransformer(
    transformers=[
        ('num', numeric_transformer, numeric_features),
        ('cat', categorical_transformer, categorical_features)
    ])

pipeline = Pipeline(steps=[('preprocessor', preprocessor)])

Совет: Укажите конкретные колонки, чтобы избежать ошибок.

Промт 10: Интерпретация результатов A/B-теста

Задача: Статистически корректно оценить результаты A/B-теста и сделать вывод.

Промт:

У меня есть результаты A/B-теста: данные в CSV с колонками user_id, group (control/test), converted (0/1). Проведи анализ: посчитай конверсии в каждой группе, построй 95% доверительный интервал для разницы конверсий, выполни t-test или z-test. Напиши код на Python, используя scipy.stats, и дай текстовый вывод, стоит ли внедрять изменение.

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

import pandas as pd
from scipy.stats import ttest_ind
from statsmodels.stats.proportion import confint_proportions_2indep

df = pd.read_csv('ab_test.csv')
control = df[df['group'] == 'control']['converted']
test = df[df['group'] == 'test']['converted']

conv_control = control.mean()
conv_test = test.mean()

z_stat, p_value = ttest_ind(control, test)
ci = confint_proportions_2indep(conv_test, len(test), conv_control, len(control))

print(f"Конверсия контроль: {conv_control:.3f}")
print(f"Конверсия тест: {conv_test:.3f}")
print(f"p-value: {p_value:.4f}")
print(f"95% CI для разницы: {ci}")

Совет: Попросите нейросеть объяснить, что означает p-value в контексте вашего эксперимента.

Промт 11: Генерация синтетических данных для тестирования

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

Промт:

Сгенерируй синтетический датасет на 1000 строк с колонками: date (за 2025 год), category (из 5 категорий), sales (нормальное распределение, зависит от категории), region (3 региона). Используй numpy.random с seed=42 для воспроизводимости. Выведи код на Python.

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

import numpy as np
import pandas as pd

np.random.seed(42)

dates = pd.date_range(start='2025-01-01', end='2025-12-31', freq='D')
categories = ['A', 'B', 'C', 'D', 'E']
regions = ['North', 'South', 'West']

data = []
for _ in range(1000):
    date = np.random.choice(dates)
    category = np.random.choice(categories)
    region = np.random.choice(regions)
    base_sales = {'A': 100, 'B': 80, 'C': 120, 'D': 60, 'E': 90}[category]
    sales = np.random.normal(base_sales, 20)
    data.append([date, category, region, sales])

df = pd.DataFrame(data, columns=['date', 'category', 'region', 'sales'])

Совет: Используйте seed, чтобы данные были воспроизводимыми для коллег.

Промт 12: Объяснение сложного кода для новичка

Задача: Быстро разобраться в чужом коде или в своей же старой работе.

Промт:

Объясни, что делает этот код (вставьте код). Разбей объяснение по шагам, опиши каждую функцию, какие библиотеки используются и зачем. Дай рекомендации по улучшению стиля кода.

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

Этот код загружает данные из CSV, очищает их от пропусков и строит линейный график. Библиотеки: pandas для работы с данными, matplotlib для визуализации. Шаг 1: pd.read_csv читает файл. Шаг 2: dropna удаляет строки с пустыми значениями. Шаг 3: plot создаёт график. Рекомендации: добавить обработку ошибок при чтении файла, вынести параметры в конфиг.

Совет: Просите объяснение с примерами, чтобы убедиться, что вы правильно поняли логику.

Заключение

Эти 12 промтов — лишь малая часть того, что можно автоматизировать в работе с данными. Начните с базовых, постепенно переходя к продвинутым и экспертным. Помните: нейросеть — это инструмент, который ускоряет рутину, но не заменяет вашу экспертизу. Всегда проверяйте результат и адаптируйте промты под свои задачи. Сохраните эту статью в закладки, чтобы возвращаться к ней, когда понадобится вдохновение. А если у вас есть свои любимые промты — поделитесь в комментариях!

← Все статьи

Комментарии

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

Как я уволил двоих подрядчиков и ускорил контент в 4 раза: 12 проверенных промтов для маркетологов

21 августа 2026

Как тренировать алгоритмы с ИИ: 12 промтов, которые заменят репетитора по LeetCode

21 августа 2026

От хаоса к чистому коду: 12 промтов для Go и Node.js, которые экономят часы на каждом спринте

21 августа 2026

Frontend-разработка в 2026: 15 промтов, которые экономят недели работы

20 августа 2026

9 промтов для Data Science, которые заменят половину рутины: от грязных данных до продакшн-моделей

20 августа 2026

От сырых данных до ML-модели: 14 промтов, которые заменят половину работы дата-сайентиста

20 августа 2026

DevOps и SRE: 12 промтов, которые заменят половину рутины к 2026 году

20 августа 2026

От сырых данных до продакшена: 10 промтов, которые заменят половину DS-команды в 2026 году

20 августа 2026

Мультимодальный AI-ассистент: 12 промтов, которые превращают текст, изображения и видео в рабочие результаты

20 августа 2026