14 промтов для Data Science: анализ данных с Pandas и визуализация

Промты — это готовые инструкции для нейросетей (ChatGPT, Claude, YandexGPT и других), которые превращают сырой запрос в чёткую задачу. В Data Science они незаменимы: помогают быстро написать код на Pandas, построить график в Matplotlib или Seaborn и провести разведочный анализ без простоев. В этой статье собраны 14 конкретных промтов с примерами — берите и копируйте.

Почему промты экономят часы работы

По данным опросов (например, Stack Overflow Developer Survey 2025), более 60% разработчиков уже используют ИИ-инструменты для написания кода. Промты позволяют делегировать рутинные операции: очистку данных, построение стандартных графиков, генерацию сводных таблиц. Особенно это полезно на старте проекта, когда нужно быстро понять структуру данных и выдвинуть гипотезы. Ниже — промты, проверенные на практике, с привязкой к официальной документации библиотек Pandas, Matplotlib и Seaborn.

Промты для работы с Pandas

1. Загрузка данных и первичный осмотр

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

Промт:

Загрузи данные из CSV-файла sales.csv. Выведи первые 10 строк, информацию о типах данных (df.info()) и количество пропусков в каждой колонке.

Пример ответа ИИ:

import pandas as pd
df = pd.read_csv('sales.csv')
print(df.head(10))
print(df.info())
print(df.isnull().sum())

2. Очистка данных от дубликатов и пропусков

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

Промт:

Напиши код для очистки датафрейма: удали полные дубликаты, заполни пропуски в числовых колонках медианой, а в категориальных — модой, преобразуй колонку date в формат datetime.

Результат:

df = df.drop_duplicates()
df['value'] = df['value'].fillna(df['value'].median())
df['category'] = df['category'].fillna(df['category'].mode()[0])
df['date'] = pd.to_datetime(df['date'])

3. Группировка и агрегация данных

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

Промт:

Используя Pandas, сгруппируй данные по колонкам region и month, вычисли для каждой группы сумму продаж и средний чек. Выведи результат в удобном виде.

Пример кода:

df.groupby(['region', 'month']).agg({'revenue': 'sum', 'check': 'mean'})

4. Сводная таблица (pivot table)

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

Промт:

Создай сводную таблицу: строки — region, столбцы — product , значения — средний доход. Добавь итоговые строки/столбцы.

Пример:

pd.pivot_table(df, values='revenue', index='region', columns='product', aggfunc='mean', margins=True)

5. Фиче-инжиниринг: создание новых признаков

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

Промт:

Напиши код для создания новых признаков из колонки birthdate: возраст, возрастная группа, декада рождения. Используй Pandas.

Пример:

df['age'] = (pd.Timestamp.now() - pd.to_datetime(df['birthdate'])).astype('<m8[Y]')
df['age_group'] = pd.cut(df['age'], bins=[0, 18, 35, 55, 100], labels=['<18', '18-35', '36-55', '55+'])

6. Векторизация вместо apply для ускорения

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

Промт:

У меня есть функция, которая считает бонус от стажа. Как заменить df.apply(lambda row: ...) на векторизированное решение в Pandas? Приведи пример.

Решение:

# вместо apply
df['bonus'] = df['experience'] * 0.1 + df['level'] * 5

Промты для визуализации (Matplotlib, Seaborn)

7. Гистограмма распределения с Matplotlib

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

Промт:

Построй гистограмму для колонки age с Matplotlib, добавь заголовок, подписи осей, сетку и цвет заливки.

Пример:

import matplotlib.pyplot as plt
plt.hist(df['age'], bins=30, alpha=0.7, color='skyblue')
plt.title('Age distribution')
plt.xlabel('Age')
plt.ylabel('Frequency')
plt.grid(True)
plt.show()

8. Pairplot для быстрой визуализации зависимостей

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

Промт:

Создай pairplot в Seaborn для колонок [‘age’, ‘income’, ‘score’], раскрась точки по колонке segment. Добавь диапазоны данных.

Код:

import seaborn as sns
sns.pairplot(df[['age', 'income', 'score'] + ['segment']], hue='segment', palette='Set2')

9. Тепловая карта корреляционной матрицы

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

Промт:

Нарисуй корреляционную матрицу в виде тепловой карты с Seaborn, отобрази значения корреляции в ячейках, используй цветовую шкалу coolwarm.

Пример:

plt.figure(figsize=(10, 8))
sns.heatmap(df.corr(), annot=True, cmap='coolwarm', fmt='.2f')
plt.show()

10. Столбчатая диаграмма с планками погрешностей

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

Промт:

Построй столбчатую диаграмму среднего дохода по регионам с доверительным интервалом (планками погрешностей) в Seaborn.

Код:

sns.barplot(data=df, x='region', y='income', ci='sd', palette='pastel')

11. Ящик с усами (Boxplot) для поиска выбросов

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

Промт:

Создай boxplot для колонки price в Matplotlib, поверни подписи оси X и отметь выбросы маркерами.

Пример:

plt.boxplot(df['price'], vert=False)
plt.title('Price distribution')
plt.show()

12. Комбинированный график: гистограмма + плотность

Промт:

Построй гистограмму и оценку плотности для колонки revenue на одном графике с помощью Seaborn.

Код:

sns.histplot(df['revenue'], kde=True, bins=40, color='green')
plt.show()

Промты для комплексного анализа

13. Автоматизированный EDA с ydata-profiling

Промт:

Сгенерируй код для построения отчёта о датафрейме df с помощью библиотеки ydata-profiling. Укажи параметр minimal=True и покажи, как сохранить отчёт в HTML.

```python
from ydata_profiling import ProfileReport
profile = ProfileReport(df, title=

← Все статьи

Комментарии