Help us improve
Share bugs, ideas, or general feedback.
From lib
Automatically analyzes CSV files and generates comprehensive statistical summaries, visualizations, and actionable insights using Python's data science stack (pandas, matplotlib, seaborn). Triggers immediately without asking what the user wants. Use when the user uploads or references a CSV file, asks to "analyze this data", "summarize this CSV", "what's in this file", "visualize this data", or similar. Do NOT trigger for non-CSV tabular formats (use appropriate tools for Excel/JSON/SQL).
npx claudepluginhub cosmicdreams/claude-plugins --plugin libHow this skill is triggered — by the user, by Claude, or both
Slash command
/lib:csv-analysisThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Act immediately.** Do not ask the user what they want. Do not offer options. Load
Creates p5.js generative art with seeded randomness, noise fields, and interactive parameter exploration. Use for algorithmic art, flow fields, or particle systems.
Share bugs, ideas, or general feedback.
Act immediately. Do not ask the user what they want. Do not offer options. Load the CSV and run a full analysis autonomously — the right analyses emerge from the data.
Requires Python ≥ 3.8 with:
pandas ≥ 2.0.0matplotlib ≥ 3.7.0seaborn ≥ 0.12.0Install if missing: pip install pandas matplotlib seaborn
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import sys, os
df = pd.read_csv("path/to/file.csv")
print(f"Shape: {df.shape[0]} rows × {df.shape[1]} columns")
print(f"\nColumn types:\n{df.dtypes}")
print(f"\nMissing values:\n{df.isnull().sum()}")
print(f"\nFirst 5 rows:\n{df.head()}")
Inspect columns and infer context:
| Signal | Likely type | Analysis approach |
|---|---|---|
| Date/time column + numeric values | Time series | Trend lines, seasonality, rolling averages |
| Categorical + numeric | Grouped analysis | Bar charts, box plots, group aggregates |
| Many numeric columns | Statistical / financial | Correlation heatmap, distributions, outliers |
| ID + event columns | Transaction / log | Frequency analysis, funnel, top-N |
| Geographic columns | Spatial | Aggregation by region |
Always generate:
df.describe()) for all numeric columnsGenerate only when relevant:
# Always save, never just plt.show()
output_dir = os.path.dirname(os.path.abspath("path/to/file.csv"))
base_name = os.path.splitext(os.path.basename("path/to/file.csv"))[0]
# Example: save correlation heatmap
plt.figure(figsize=(10, 8))
sns.heatmap(df.select_dtypes(include='number').corr(), annot=True, fmt='.2f', cmap='coolwarm')
plt.title('Correlation Matrix')
plt.tight_layout()
plt.savefig(f"{output_dir}/{base_name}-correlation.png", dpi=150)
plt.close()
Name files: <base-csv-name>-<chart-type>.png in the same directory as the CSV.
After analysis, output a structured summary:
📊 CSV Analysis: filename.csv
─────────────────────────────────────
Shape: 1,234 rows × 8 columns
Nulls: revenue (12%), category (0%)
Types: 4 numeric, 3 categorical, 1 datetime
KEY FINDINGS
• [Most important pattern or outlier]
• [Second finding]
• [Third finding]
STATISTICS (numeric columns)
revenue: mean $4,230 | median $2,100 | range $50–$98,000
quantity: mean 14.2 | median 12 | stddev 8.3
TOP CATEGORIES
region: West 38% | East 29% | South 19% | Other 14%
VISUALIZATIONS SAVED
→ filename-distribution.png
→ filename-correlation.png
─────────────────────────────────────
utf-8, fall back to latin-1| Problem | Response |
|---|---|
| File not found | Ask user to confirm path, check working directory |
| Encoding error | Retry with encoding='latin-1' |
| pandas/matplotlib not installed | Show install command, stop |
| All-null column | Include in report as "empty column", skip from charts |
| Single-row CSV | Report it, skip statistical analysis |