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

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

Введение

Data Science — это не просто модное слово, а ключевая компетенция в современном мире данных. По данным отчёта Stack Overflow Developer Survey 2025, более 40% разработчиков используют Python для анализа данных, а Pandas остаётся одной из самых востребованных библиотек. Однако, чтобы эффективно работать с данными, нужно не только знать синтаксис, но и уметь формулировать задачи. Именно здесь на помощь приходят промты — готовые шаблоны действий, которые экономят время и помогают избежать типичных ошибок. В этой статье я собрал 15 промтов для Data Science, которые охватывают три ключевые области: базовый анализ данных, визуализацию и продвинутую работу с Pandas. Каждый промт сопровождается реальным примером, кодом и пояснением, чтобы вы могли сразу применить его в своей работе.

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

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

Задача: Быстро загрузить CSV-файл и получить сводную информацию о датасете.
Промт: «Загрузи данные из CSV-файла с помощью Pandas, выведи первые 5 строк, опиши типы данных и основные статистики числовых колонок.»
Пример результата:

import pandas as pd

df = pd.read_csv('data.csv')
print(df.head())
print(df.dtypes)
print(df.describe())

Пояснение: Этот промт идеален для начала работы: вы сразу видите структуру данных, пропуски и выбросы. Метод describe() возвращает среднее, стандартное отклонение, минимум и максимум — базовый набор для EDA.

Промт 2: Обработка пропущенных значений

Задача: Определить и заполнить пропуски в датасете.
Промт: «Найди колонки с пропущенными значениями, посчитай их количество и заполни медианой для числовых и модой для категориальных.»
Пример результата:

missing = df.isnull().sum()
print(missing[missing > 0])

for col in df.select_dtypes(include=['float64', 'int64']).columns:
    df[col].fillna(df[col].median(), inplace=True)
for col in df.select_dtypes(include=['object']).columns:
    df[col].fillna(df[col].mode()[0], inplace=True)

Пояснение: Пропуски — частая проблема реальных данных. Медиана устойчива к выбросам, а мода подходит для текстовых полей. Метод select_dtypes позволяет автоматически разделить колонки по типам.

Промт 3: Фильтрация данных по условию

Задача: Отфильтровать строки на основе сложного условия.
Промт: «Выбери все записи, где значение в колонке ‘sales’ больше 1000 и ‘region’ равен ‘Europe’.»
Пример результата:

filtered_df = df[(df['sales'] > 1000) & (df['region'] == 'Europe')]
print(filtered_df.shape)

Пояснение: Использование логических операторов & и скобок — must-have для фильтрации. Этот промт помогает быстро выделить подмножество данных для анализа.

Промт 4: Группировка и агрегация

Задача: Посчитать средние продажи по регионам.
Промт: «Сгруппируй данные по колонке ‘region’ и вычисли среднее, сумму и количество записей для колонки ‘sales’.»
Пример результата:

agg = df.groupby('region')['sales'].agg(['mean', 'sum', 'count'])
print(agg)

Пояснение: Метод agg позволяет применять несколько функций одновременно. Это основа для построения отчётов и дашбордов.

Промт 5: Создание новых признаков (feature engineering)

Задача: Создать колонку ‘profit’ как разность ‘revenue’ и ‘cost’.
Промт: «Добавь новую колонку ‘profit_ratio’, равную отношению ‘profit’ к ‘revenue’, и округли до двух знаков.»
Пример результата:

df['profit'] = df['revenue'] - df['cost']
df['profit_ratio'] = (df['profit'] / df['revenue']).round(2)

Пояснение: Feature engineering улучшает качество моделей. Простые производные признаки часто несут больше информации, чем исходные.

Категория 2: Промты для визуализации

Промт 6: Гистограмма распределения

Задача: Визуализировать распределение числовой переменной.
Промт: «Построй гистограмму для колонки ‘age’ с 20 бинами, добавь линию среднего и медианы.»
Пример результата:

import matplotlib.pyplot as plt
import seaborn as sns

plt.figure(figsize=(10, 6))
sns.histplot(df['age'], bins=20, kde=True)
plt.axvline(df['age'].mean(), color='red', linestyle='--', label='Mean')
plt.axvline(df['age'].median(), color='green', linestyle='--', label='Median')
plt.legend()
plt.show()

Пояснение: KDE (ядровая оценка плотности) накладывает сглаженную кривую, а линии среднего и медианы помогают оценить асимметрию. Это базовый график для понимания распределения.

Промт 7: Ящик с усами (boxplot)

Задача: Выявить выбросы в данных.
Промт: «Построй boxplot для колонки ‘price’ по группам ‘category’ для сравнения медиан и разброса.»
Пример результата:

plt.figure(figsize=(12, 6))
sns.boxplot(x='category', y='price', data=df)
plt.xticks(rotation=45)
plt.show()

Пояснение: Boxplot показывает квартили, медиану и выбросы. Если точки выходят за усы (1.5 IQR), это потенциальные аномалии — их стоит проверить.

Промт 8: Корреляционная матрица

Задача: Оценить взаимосвязи между числовыми переменными.
Промт: «Построй тепловую карту корреляции для всех числовых колонок, подпиши значения.»
Пример результата:

corr = df.select_dtypes(include=['float64', 'int64']).corr()
plt.figure(figsize=(10, 8))
sns.heatmap(corr, annot=True, cmap='coolwarm', fmt='.2f')
plt.show()

Пояснение: Тепловая карта помогает быстро найти сильные корреляции (близкие к 1 или -1). Это важно для выбора признаков для модели.

Промт 9: Линейный график временного ряда

Задача: Визуализировать тренд продаж по месяцам.
Промт: «Преобразуй колонку ‘date’ в datetime, установи её как индекс и построй линейный график месячных продаж.»
Пример результата:

df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
monthly = df['sales'].resample('M').sum()
plt.figure(figsize=(12, 6))
monthly.plot(marker='o')
plt.title('Monthly Sales Trend')
plt.show()

Пояснение: Работа с временными рядами требует преобразования дат. Метод resample агрегирует данные по месяцам, что сглаживает шум и показывает тренд.

Промт 10: Диаграмма рассеяния (scatter plot)

Задача: Исследовать взаимосвязь двух переменных.
Промт: «Построй scatter plot для ‘advertising_spend’ и ‘sales’, добавь линию регрессии.»
Пример результата:

plt.figure(figsize=(10, 6))
sns.regplot(x='advertising_spend', y='sales', data=df, scatter_kws={'alpha':0.5})
plt.show()

Пояснение: regplot автоматически добавляет линию регрессии и доверительный интервал. Это помогает визуально оценить линейную зависимость.

Категория 3: Продвинутые промты для Pandas

Промт 11: Применение пользовательских функций с apply

Задача: Применить сложную логику к каждой строке.
Промт: «Создай функцию, которая классифицирует ‘age’ на ‘young’, ‘adult’, ‘senior’, и примени её через apply.»
Пример результата:

def age_group(age):
    if age < 18:
        return 'young'
    elif age < 60:
        return 'adult'
    else:
        return 'senior'

df['age_group'] = df['age'].apply(age_group)

Пояснение: apply позволяет использовать любые Python-функции, но для производительности лучше использовать векторизованные методы. В данном случае это оправдано простотой.

Промт 12: Работа с датами и временем

Задача: Извлечь компоненты даты для анализа.
Промт: «Из колонки ‘timestamp’ извлеки год, месяц и день недели, создай новые колонки.»
Пример результата:

df['timestamp'] = pd.to_datetime(df['timestamp'])
df['year'] = df['timestamp'].dt.year
df['month'] = df['timestamp'].dt.month
df['weekday'] = df['timestamp'].dt.dayofweek

Пояснение: Доступ через dt аксессор — эффективный способ работы с datetime-данными. День недели (0=понедельник) полезен для сезонного анализа.

Промт 13: Слияние датасетов

Задача: Объединить два датафрейма по ключу.
Промт: «Слей users_df и orders_df по колонке ‘user_id’ с помощью left join, чтобы сохранить всех пользователей.»
Пример результата:

merged_df = pd.merge(users_df, orders_df, on='user_id', how='left')

Пояснение: merge — аналог SQL JOIN. Left join сохраняет все строки левого датафрейма, а отсутствующие значения заполняются NaN.

Промт 14: Сводные таблицы (pivot_table)

Задача: Построить матрицу средних продаж по регионам и категориям.
Промт: «Создай сводную таблицу со средними продажами, где строки — ‘region’, столбцы — ‘category’.»
Пример результата:

pivot = pd.pivot_table(df, values='sales', index='region', columns='category', aggfunc='mean')
print(pivot)

Пояснение: pivot_table — мощный инструмент для многомерного анализа. Можно указать несколько функций агрегации через список.

Промт 15: Оптимизация памяти

Задача: Уменьшить потребление памяти датафреймом.
Промт: «Измени типы данных для экономии памяти: преобразуй float64 в float32 и object в category, где возможно.»
Пример результата:

for col in df.select_dtypes(include=['float64']).columns:
    df[col] = df[col].astype('float32')
for col in df.select_dtypes(include=['object']).columns:
    if df[col].nunique() / len(df) < 0.5:
        df[col] = df[col].astype('category')

Пояснение: Тип category экономит память для колонок с небольшим числом уникальных значений. Это особенно актуально для больших датасетов (миллионы строк).

Заключение

Эти 15 промтов покрывают основные потребности Data Science-специалиста: от загрузки данных до продвинутой трансформации и визуализации. Практикуйтесь на реальных датасетах, например, из репозитория UCI Machine Learning Repository или Kaggle. Помните, что лучший способ освоить анализ данных — это решать конкретные задачи. Начните с малого: возьмите один промт, примените его к своим данным и постепенно усложняйте. Удачи в анализе!

← Все статьи

Комментарии

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

Детектирование текстов, сгенерированных LLM, с помощью «классического» машинного обучения: почему старые методы всё ещё актуальны

16 июля 2026

Освоение инфраструктуры как кода: почему курс Terraform и IaC на asibiont.com — ваш путь к мультиоблачному управлению в 2026 году

16 июля 2026

Заказ еды из терминала: DoorDash теперь доступен через командную строку

16 июля 2026

Как я освоил 3D-моделирование в Blender с нуля: честный отзыв о курсе на asibiont.com

16 июля 2026

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

16 июля 2026

Создайте надежную продуктовую стратегию: уроки курса «Управление продуктом и рост» на Asibiont

16 июля 2026

Разрыв в оценке агентов: у Enterprise AI-организаций проблема с реальностью, а не с покрытием — и большинство всё равно запускают в продакшн

16 июля 2026

Как перестать постить «в никуда»: обзор курса Content Strategy — контент-стратегия и контент-маркетинг на Asibiont

16 июля 2026

E-Ink Waveshare + ASI Biont: как подключить дисплей на электронных чернилах к AI-агенту без программирования

16 июля 2026