Skip to main content

analyzing-data

Use when you have CSV/Excel data files and need PM insights (retention, funnel, segmentation) via Python analysis.

معلومات المصدر

المستودع
majiayu000/claude-skill-registry-data
آخر نشاط في المصدر
٢٣ يونيو ٢٠٢٦ في ١١:٠٢
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٢٢
التفرعات
٨

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
2 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
analyzing-data
description
Use when you have CSV/Excel data files and need PM insights (retention, funnel, segmentation) via Python analysis.
# Analyzing Data ## Overview A protocol for Python-based data analysis that prevents hallucination by requiring explicit column understanding, separating metrics from implications, and labeling all hypotheses. ## When to Use - User provides CSV, Excel, or structured data files - User asks for "analysis", "insights", "metrics", "trends", or "charts" - Data exists in `data/` or `inputs/` folder - User wants to understand product performance ## Core Pattern **Step 1: Exploratory Data Analysis (EDA)** Write and execute a Python script to produce: ```python import pandas as pd # Load data df = pd.read_csv('inputs/data/filename.csv') # or pd.read_excel() # Basic info print("=== SHAPE ===") print(df.shape) print("\n=== COLUMNS & TYPES ===") print(df.dtypes) print("\n=== FIRST 5 ROWS ===") print(df.head()) print("\n=== SUMMARY STATS ===") print(df.describe(include='all')) print("\n=== MISSING DATA ===") print(df.isnull().sum() / len(df) * 100) ``` **Step 2: Data Dictionary** Create a data dictionary table: | Column | Type | Example Values | Meaning | |--------|------|----------------|---------| | [col] | [dtype] | [2-3 examples] | [Explicit/Unknown] | **Rules:** - Mark meaning as "Unknown" if not explicitly documented - Do NOT infer column meanings from names alone - Ask user to clarify unknown columns before proceeding **Step 3: Analysis Plan** Only propose analyses where: - Required columns have known meanings - User has confirmed the business context - The analysis directly answers user's question **Step 4: Execution & Visualization** ```python import matplotlib.pyplot as plt # Example: Time series df['date'] = pd.to_datetime(df['date_column']) daily = df.groupby('date').size() daily.plot(figsize=(10,5), title='Daily Counts') plt.savefig('outputs/insights/analysis_output.png') print("Chart saved to outputs/insights/analysis_output.png") ``` **Step 5: Generate Output** Write to `outputs/insights/data-analysis-YYYY-MM-DD.md`: ```markdown --- generated: YYYY-MM-DD HH:MM skill: analyzing-data sources: - inputs/data/filename.csv (modified: YYYY-MM-DD) downstream: [] --- # Data Analysis: [Dataset Name] ## Dataset Overview | Attribute | Value | |-----------|-------| | Rows | N | | Columns | N | | Date range | [if applicable] | ## Data Dictionary | Column | Type | Example Values | Meaning | |--------|------|----------------|---------| | ... | ... | ... | Explicit/Unknown | ## Key Metrics | Metric | Value | Source | |--------|-------|--------| | [Metric name] | [Number] | [Code output] | ## Findings 1. **[Finding]** — Evidence: [code output] ## Hypotheses (require validation) 1. **[Hypothesis]** — Based on: [observation] ## Visualizations - [Chart description]: outputs/insights/[filename].png ## Sources Used - [file paths] ## Claims Ledger | Claim | Type | Source | |-------|------|--------| | [Metric] | Evidence | [Python output] | | [Trend interpretation] | Hypothesis | [Based on metric X] | ``` **Step 6: Copy to History & Update Tracker** - Copy to `history/analyzing-data/data-analysis-YYYY-MM-DD.md` - Update `alerts/stale-outputs.md` ## Quick Reference | Action | Command | |--------|---------| | Load CSV | `pd.read_csv('inputs/data/file.csv')` | | Load Excel | `pd.read_excel('inputs/data/file.xlsx')` | | Save chart | `plt.savefig('outputs/insights/output.png')` | | Check nulls | `df.isnull().sum()` | ## Common Mistakes - **Assuming column meanings:** "user_id probably means..." → Ask user to confirm - **Stating implications as facts:** "Users are churning because..." → Label as hypothesis - **Using sample data for conclusions:** "Based on 10 rows..." → Ensure representative data - **Ignoring missing data:** 50% nulls in key column → Report this prominently - **No data dictionary:** Jumping to analysis → Always document columns first ## Verification Checklist - [ ] Data dictionary created with all columns - [ ] Unknown meanings explicitly marked - [ ] User confirmed column semantics before analysis - [ ] Metrics separated from hypotheses - [ ] Missing data reported - [ ] Charts saved to outputs/insights/ - [ ] All code executed successfully - [ ] Metadata header complete - [ ] Copied to history, tracker updated ## Evidence Tracking | Claim | Type | Source | |-------|------|--------| | [Metric] | Evidence | [Python output] | | [Trend interpretation] | Hypothesis | [Based on metric X] | | [Column meaning] | Evidence/Unknown | [User confirmed / Not stated] |
عرض على GitHub