К основному содержанию
скилл CX Codex

Data Cleaning Pipeline — скилл для Claude Code

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

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add aj-geddes/useful-ai-prompts --skill data-cleaning-pipeline -a claude-code
Открыть на GitHub

Что делает Data Cleaning Pipeline

Скилл даёт готовые шаблоны для предобработки табличных данных. Он описывает шаги по фильтрации критических пропусков, заполнению числовых колонок медианой или через KNNImputer, а также масштабированию признаков с помощью StandardScaler и MinMaxScaler.

Логика выстроена вокруг класса DataCleaningPipeline, куда последовательно передаются шаги обработки через функции. Внутри предусмотрены расчёт межквартильного размаха (IQR) для поиска аномалий, очистка текста регулярными выражениями и сборка отчёта о качестве данных.

Для выполнения сгенерированного кода в проекте понадобятся установленные библиотеки pandas, numpy и scikit-learn. Без них скрипт завершится с ошибкой ещё на этапе импорта классов импутации.

Какие задачи решает

  • настроить заполнение пропусков через SimpleImputer или KNNImputer
  • найти и отсечь выбросы по правилу межквартильного размаха IQR
  • удалить дубликаты по заданному набору ключевых колонок
  • составить сводный отчёт о потерях строк и проценте пропусков

Примеры запросов агенту

  • Собери пайплайн очистки для raw_data.csv с заполнением пропусков через KNN
  • Напиши класс DataCleaningPipeline для фильтрации выбросов по IQR в колонке amount
  • Добавь в скрипт проверку типов данных и генерацию отчёта о качестве

Как установить Data Cleaning Pipeline

1Через Skills CLI (Vercel)

npx skills add aj-geddes/useful-ai-prompts --skill data-cleaning-pipeline -a claude-code

2Вручную: положить файлы

~/.claude/skills/data-cleaning-pipeline/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/data-cleaning-pipeline/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о Data Cleaning Pipeline

Как установить Data Cleaning Pipeline в Claude Code?

Выполните в терминале команду npx skills add aj-geddes/useful-ai-prompts --skill data-cleaning-pipeline -a claude-code.

Какие библиотеки Python нужны для работы пайплайна?

Код из шаблонов скилла использует pandas, numpy и scikit-learn. Их необходимо установить в рабочее окружение проекта.

Как в этом пайплайне обрабатываются числовые выбросы?

Скилл вычисляет межквартильный размах IQR, после чего предлагает либо удалить аномальные строки, либо ограничить экстремальные значения через clip().

Исходный текст

SKILL.md · MIT
---
name: Data Cleaning Pipeline
description: Build robust processes for data cleaning, missing value imputation, outlier handling, and data transformation for data preprocessing, data quality, and data pipeline automation
---

# Data Cleaning Pipeline

## Overview

Data cleaning pipelines transform raw, messy data into clean, standardized formats suitable for analysis and modeling through systematic handling of missing values, outliers, and data quality issues.

## When to Use

- Preparing raw datasets for analysis or modeling
- Handling missing values and data quality issues
- Removing duplicates and standardizing formats
- Detecting and treating outliers
- Building automated data preprocessing workflows
- Ensuring data integrity and consistency

## Core Components

- **Missing Value Handling**: Imputation and removal strategies
- **Outlier Detection & Treatment**: Identifying and handling anomalies
- **Data Type Standardization**: Ensuring correct data types
- **Duplicate Removal**: Identifying and removing duplicates
- **Normalization & Scaling**: Standardizing value ranges
- **Text Cleaning**: Handling text data

## Cleaning Strategies

- **Deletion**: Removing rows or columns
- **Imputation**: Filling with mean, median, or predictive models
- **Transformation**: Converting between formats
- **Validation**: Ensuring data integrity rules

## Implementation with Python

```python
import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler, MinMaxScaler
from sklearn.impute import SimpleImputer, KNNImputer

# Load raw data
df = pd.read_csv('raw_data.csv')

# Step 1: Identify and handle missing values
print("Missing values:\n", df.isnull().sum())

# Strategy 1: Delete rows with critical missing values
df = df.dropna(subset=['customer_id', 'transaction_date'])

# Strategy 2: Impute numerical columns with median
imputer = SimpleImputer(strategy='median')
df['age'] = imputer.fit_transform(df[['age']])

# Strategy 3: Use KNN imputation for related features
knn_imputer = KNNImputer(n_neighbors=5)
numeric_cols = df.select_dtypes(include=[np.number]).columns
df[numeric_cols] = knn_imputer.fit_transform(df[numeric_cols])

# Strategy 4: Fill categorical with mode
df['category'] = df['category'].fillna(df['category'].mode()[0])

# Step 2: Handle duplicates
print(f"Duplicate rows: {df.duplicated().sum()}")
df = df.drop_duplicates()

# Duplicate on specific columns
df = df.drop_duplicates(subset=['customer_id', 'transaction_date'])

# Step 3: Outlier detection and handling
Q1 = df['amount'].quantile(0.25)
Q3 = df['amount'].quantile(0.75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR

# Remove outliers
df = df[(df['amount'] >= lower_bound) & (df['amount'] <= upper_bound)]

# Alternative: Cap outliers
df['amount'] = df['amount'].clip(lower=lower_bound, upper=upper_bound)

# Step 4: Data type standardization
df['transaction_date'] = pd.to_datetime(df['transaction_date'])
df['customer_id'] = df['customer_id'].astype('int64')
df['amount'] = pd.to_numeric(df['amount'], errors='coerce')

# Step 5: Text cleaning
df['name'] = df['name'].str.strip().str.lower()
df['name'] = df['name'].str.replace('[^a-z0-9\s]', '', regex=True)

# Step 6: Normalization and scaling
scaler = StandardScaler()
df[['age', 'income']] = scaler.fit_transform(df[['age', 'income']])

# MinMax scaling for bounded range [0, 1]
minmax_scaler = MinMaxScaler()
df[['score']] = minmax_scaler.fit_transform(df[['score']])

# Step 7: Create data quality report
def create_quality_report(df_original, df_cleaned):
    report = {
        'Original rows': len(df_original),
        'Cleaned rows': len(df_cleaned),
        'Rows removed': len(df_original) - len(df_cleaned),
        'Removal percentage': ((len(df_original) - len(df_cleaned)) / len(df_original) * 100),
        'Original missing': df_original.isnull().sum().sum(),
        'Cleaned missing': df_cleaned.isnull().sum().sum(),
    }
    return pd.DataFrame(report, index=[0])

quality = create_quality_report(df, df)
print(quality)

# Step 8: Validation checks
assert df['age'].isnull().sum() == 0, "Age has missing values"
assert df['transaction_date'].dtype == 'datetime64[ns]', "Date not datetime"
assert (df['amount'] >= 0).all(), "Negative amounts detected"

print("Data cleaning pipeline completed successfully!")
```

## Pipeline Architecture

```python
class DataCleaningPipeline:
    def __init__(self):
        self.cleaner_steps = []

    def add_step(self, func, description):
        self.cleaner_steps.append((func, description))
        return self

    def execute(self, df):
        for func, desc in self.cleaner_steps:
            print(f"Executing: {desc}")
            df = func(df)
        return df

# Usage
pipeline = DataCleaningPipeline()
pipeline.add_step(
    lambda df: df.dropna(subset=['customer_id']),
    "Remove rows with missing customer_id"
).add_step(
    lambda df: df.drop_duplicates(),
    "Remove duplicate rows"
).add_step(
    lambda df: df[(df['amount'] > 0) & (df['amount'] < 100000)],
    "Filter invalid amount ranges"
)

df_clean = pipeline.execute(df)
```

## Advanced Cleaning Techniques

```python
# Step 9: Feature-specific cleaning
df['phone'] = df['phone'].str.replace(r'\D', '', regex=True)  # Remove non-digits

# Step 10: Datetime handling
df['created_date'] = pd.to_datetime(df['created_date'], errors='coerce')
df['days_since_creation'] = (pd.Timestamp.now() - df['created_date']).dt.days

# Step 11: Categorical standardization
df['status'] = df['status'].str.lower().str.strip()
df['status'] = df['status'].replace({
    'active': 'active',
    'inactive': 'inactive',
    'pending': 'pending',
})

# Step 12: Numeric constraint checking
df['age'] = df['age'].where((df['age'] >= 0) & (df['age'] <= 150), np.nan)
df['percentage'] = df['percentage'].where((df['percentage'] >= 0) & (df['percentage'] <= 100), np.nan)

# Step 13: Create data quality score
quality_score = {
    'Missing %': (df.isnull().sum() / len(df) * 100).mean(),
    'Duplicates %': (df.duplicated().sum() / len(df) * 100),
    'Complete Features': (df.notna().sum() / len(df)).mean() * 100,
}

# Step 14: Generate cleaning report
cleaning_report = f"""
DATA CLEANING REPORT
====================
Rows removed: {len(df) - len(df_clean)}
Columns: {len(df_clean.columns)}
Remaining rows: {len(df_clean)}
Completeness: {(df_clean.notna().sum().sum() / (len(df_clean) * len(df_clean.columns)) * 100):.1f}%
"""
print(cleaning_report)
```

## Key Decisions

- How to handle missing values (delete vs impute)?
- Which outliers are legitimate business cases?
- What are acceptable value ranges?
- Which duplicates are true duplicates?
- How to standardize categorical values?

## Validation Steps

- Check for data type consistency
- Verify value ranges are reasonable
- Confirm no unintended data loss
- Document all transformations applied
- Create audit trail of changes

## Deliverables

- Cleaned dataset with quality metrics
- Data cleaning log documenting all steps
- Validation report confirming data integrity
- Before/after comparison statistics
- Cleaning code and pipeline documentation

© aj-geddes · MIT · aj-geddes/useful-ai-prompts

Похожие скиллы

Все скиллы по теме «Данные и базы» →
data-scientist Seth Hobson Субагент исследует данные, строит статистические модели и помогает оценивать результаты экспериментов. Его можно подключить к Claude Code, Codex или Cursor. CX Codex 3 342установок stata-data-cleaning Awesome Econ AI Community Скилл помогает экономистам готовить воспроизводимые do-файлы в Stata: очищать сырые выборки, находить дубликаты и размечать переменные. CX Codex +1 351установок senior-data-scientist Alireza Rezvani Скилл для Claude Code, который ведёт расчёт A/B-тестов, причинный анализ и оценку моделей на Python, R и SQL. 942установок csv-data-summarizer coffeefuelbump Скилл читает CSV через pandas и сразу выдаёт статистику, пропуски и нужные графики. Пригодится, когда присылают выгрузку и нужен разбор без ручных вопросов. CX Codex +1 2 100установок analytics-data-analysis Mindrally Задаёт агенту правила работы с pandas, matplotlib и seaborn: как чистить датасет, строить графики и оформлять Jupyter-ноутбук. CX Codex +1 1 100установок data-jupyter-python Mindrally Задаёт агенту правила работы с pandas, numpy, matplotlib и seaborn: векторизация вместо циклов, воспроизводимые ноутбуки, аккуратные графики. CX Codex +1 865установок

Из того же набора149

design-patterns-implementation Помогает агенту подобрать паттерн под архитектурную задачу: Singleton, Factory, Observer, Strategy и другие. Пригодится при рефакторинге и разборе ревью. CX Codex +1 595установок unit-testing-framework Скилл задаёт агенту правила написания юнит-тестов: структура Arrange-Act-Assert, моки, граничные случаи. Пригодится, когда нужно покрыть тестами новую функцию или класс. CX Codex +1 593установок database-schema-design Скилл помогает проектировать схемы реляционных баз данных, нормализовать таблицы и выстраивать связи. Пригодится при создании моделей данных для PostgreSQL и MySQL. CX Codex +1 591установок aws-s3-management Скилл помогает настраивать S3-бакеты: включать версионирование и шифрование, ограничивать публичный доступ и задавать политики жизненного цикла. Пригодится для объектного хранилища, резервных копий и статических сайтов. CX Codex +1 590установок database-query-optimization Скилл разбирает медленные SQL-запросы: индексы, планы выполнения, узкие места. Пригодится, когда база тормозит или выросла нагрузка на CPU. CX Codex +1 586установок database-backup-restore Скилл для ассистентов кодинга, который помогает выстроить резервное копирование и восстановление баз данных. Пригодится, когда нужно продумать стратегию на случай сбоя или проверить, что бэкап вообще восстанавливается. CX Codex +1 582установок memory-leak-detection Скилл помогает найти и починить утечки памяти: heap-снимки, профилирование, разбор типичных причин роста потребления. CX Codex +1 580установок technical-roadmap-planning Помогает составить технический роадмап на кварталы и годы: архитектура, инфраструктура, инвестиции в стек. Пригодится перед крупной модернизацией. CX Codex +1 577установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой