원클릭으로
profile
Profile data files — row counts, column types, missing values, duplicates, statistics
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Profile data files — row counts, column types, missing values, duplicates, statistics
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Full agentic analysis pipeline — ingest, clean, analyze, visualize, report, and dashboard from any data
Clean and transform data files — fix types, handle missing values, remove duplicates
Build a standalone interactive HTML dashboard with Chart.js from any dataset
Ask natural language questions about your data and get answers with evidence
Generate a comprehensive Markdown analysis report with findings, charts, and recommendations
Generate charts and plots from data — line, bar, pie, heatmap, scatter, histogram
SOC 직업 분류 기준
| name | profile |
| description | Profile data files — row counts, column types, missing values, duplicates, statistics |
| argument-hint | [dataset-name] |
| risk | safe |
| disable-model-invocation | false |
| user-invocable | true |
| allowed-tools | Read, Write, Bash, Glob, Grep |
| model | claude-haiku-4-5-20251001 |
| context | fork |
| agent | general-purpose |
Profile any CSV, Excel, or JSON dataset to understand its structure, quality, and statistics before analysis.
Quickly assess data files without running the full pipeline. Reads from input/<dataset>/, produces a data-profile.md in output/<dataset>/ with row/column counts, data types, missing values, duplicates, basic statistics, and a quality score.
:analyze or :cleanParse $ARGUMENTS to get the dataset name (e.g., shopify-data).
input/<dataset-name>/output/<dataset-name>/$ARGUMENTS and set paths:
input/<dataset>/output/<dataset>/input/<dataset>/ using Glob patterns: input/<dataset>/**/*.csv, input/<dataset>/**/*.xlsx, input/<dataset>/**/*.xls, input/<dataset>/**/*.jsonmkdir -p output/<dataset>import pandas as pd
import os
def profile(filepath):
ext = os.path.splitext(filepath)[1].lower()
if ext == '.csv':
df = pd.read_csv(filepath)
elif ext in ['.xlsx', '.xls']:
df = pd.read_excel(filepath)
elif ext == '.json':
df = pd.read_json(filepath)
else:
return None
total_cells = df.shape[0] * df.shape[1]
missing_cells = df.isna().sum().sum()
quality_score = round((1 - missing_cells / total_cells) * 100, 1) if total_cells > 0 else 0
print(f"## {os.path.basename(filepath)}")
print(f"- **Rows:** {len(df):,}")
print(f"- **Columns:** {len(df.columns)}")
print(f"- **Duplicates:** {df.duplicated().sum():,}")
print(f"- **Quality Score:** {quality_score}%")
print()
print("| Column | Type | Missing | Missing % | Unique |")
print("|--------|------|---------|-----------|--------|")
for col in df.columns:
missing = df[col].isna().sum()
missing_pct = round(df[col].isna().mean() * 100, 1)
unique = df[col].nunique()
print(f"| {col} | {df[col].dtype} | {missing:,} | {missing_pct}% | {unique:,} |")
print()
num_cols = df.select_dtypes(include='number').columns
if len(num_cols) > 0:
print("| Column | Min | Max | Mean | Median | Std |")
print("|--------|-----|-----|------|--------|-----|")
for col in num_cols:
if not df[col].isna().all():
print(f"| {col} | {df[col].min():.2f} | {df[col].max():.2f} | {df[col].mean():.2f} | {df[col].median():.2f} | {df[col].std():.2f} |")
print()
output/<dataset>/data-profile.md| File | Rows | Columns | Quality | Issues |
|------|------|---------|---------|--------|
/10x-analyst:profile shopify-data
:clean for thatopenpyxl installedDeveloped by 10x.in | 10x-Analyst v1.0.0