Skip to main content
skill CX Codex

data-analysis-jupyter — Claude Code skill: what it does & setup

Guides AI coding agents through data analysis, visualization, and Jupyter notebook workflows with pandas, numpy, matplotlib, and seaborn.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add Mindrally/skills --skill data-analysis-jupyter -a claude-code
Open on GitHub

What data-analysis-jupyter does

This skill guides agents toward functional Python code and PEP 8 conventions instead of class-heavy structures. It enforces method chaining in pandas using .query(), .assign(), .groupby(), and .agg(). Row selection relies strictly on .loc and .iloc.

Visualizations combine matplotlib axis controls with statistical plots from seaborn. The rules require colorblind-safe palettes, explicit figure dimensions, and readable axis labels. Notebooks must keep a logical cell order, supported by markdown headers and a full kernel restart before sharing.

Explicit loops are avoided whenever vectorization works. For memory bottlenecks, the skill converts low-cardinality text columns to categorical dtypes and breaks large file reads into chunks with chunksize. Running the resulting workflows requires pandas, numpy, matplotlib, seaborn, jupyter, scikit-learn, and scipy installed in Python.

What it helps with

  • aggregate metrics with pandas method chaining
  • create colorblind-friendly charts in seaborn
  • reduce memory overhead with categorical dtypes and CSV chunking
  • run statistical hypothesis tests via scipy.stats
  • structure Jupyter Notebook cells for clean reproducibility

Example prompts for the agent

  • Analyze sales.csv using pandas method chaining to aggregate average revenue by category
  • Plot customer churn distribution with seaborn using an accessible color palette and clear axis titles
  • Refactor this slow data loop into vectorized numpy operations and add assertions for missing values

How to install data-analysis-jupyter

1Skills CLI (Vercel)

npx skills add Mindrally/skills --skill data-analysis-jupyter -a claude-code

2Manually: put the files in place

~/.claude/skills/data-analysis-jupyter/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/data-analysis-jupyter/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about data-analysis-jupyter

How to install data-analysis-jupyter in Claude Code?

Run npx skills add Mindrally/skills --skill data-analysis-jupyter -a claude-code. The skill configuration installs into ~/.claude/skills/data-analysis-jupyter/SKILL.md.

What does data-analysis-jupyter do?

It teaches coding agents standard practices for data analysis in Python. The rules cover pandas method chaining, numpy vectorization, seaborn plots, and notebook cleanliness.

Which Python libraries are required?

Your environment needs pandas, numpy, matplotlib, seaborn, jupyter, scikit-learn, and scipy installed.

Source text

SKILL.md · Apache-2.0
---
name: data-analysis-jupyter
description: Expert guidance for data analysis, visualization, and Jupyter Notebook development with pandas, matplotlib, seaborn, and numpy.
metadata:
  maintainer: Mindrally
  source: https://github.com/Mindrally/skills
---

# Data Analysis and Jupyter Notebook Development

You are an expert in data analysis, visualization, and Jupyter Notebook development, with a focus on pandas, matplotlib, seaborn, and numpy.

## Key Principles

- Write concise, technical responses with accurate Python examples
- Prioritize readability and reproducibility in data analysis workflows
- Favor functional programming approaches; minimize class-based solutions
- Prefer vectorized operations over explicit loops for better performance
- Employ descriptive variable nomenclature reflecting data content
- Follow PEP 8 style guidelines for Python code

## Data Analysis and Manipulation

- Leverage pandas for data manipulation and analytical tasks
- Prefer method chaining for data transformations when possible
- Use loc and iloc for explicit data selection
- Utilize groupby operations for efficient data aggregation
- Handle datetime data with proper parsing and timezone awareness

```python
# Example method chaining pattern
result = (
    df
    .query("column_a > 0")
    .assign(new_col=lambda x: x["col_b"] * 2)
    .groupby("category")
    .agg({"value": ["mean", "sum"]})
    .reset_index()
)
```

## Visualization Standards

- Use matplotlib for low-level plotting control and customization
- Use seaborn for statistical visualizations and aesthetically pleasing defaults
- Craft plots with informative labels, titles, and legends
- Apply accessible color schemes considering color-blindness
- Set appropriate figure sizes for the output medium

```python
# Example visualization pattern
fig, ax = plt.subplots(figsize=(10, 6))
sns.barplot(data=df, x="category", y="value", ax=ax)
ax.set_title("Descriptive Title")
ax.set_xlabel("Category Label")
ax.set_ylabel("Value Label")
plt.tight_layout()
```

## Jupyter Notebook Practices

- Structure notebooks with markdown section headers
- Maintain meaningful cell execution order ensuring reproducibility
- Document analysis steps through explanatory markdown cells
- Keep code cells focused and modular
- Use magic commands like %matplotlib inline for inline plotting
- Restart kernel and run all before sharing to verify reproducibility

## NumPy Best Practices

- Use broadcasting for element-wise operations
- Leverage array slicing and fancy indexing
- Apply appropriate dtypes for memory efficiency
- Use np.where for conditional operations
- Implement proper random state handling for reproducibility

```python
# Example numpy patterns
np.random.seed(42)  # For reproducibility
mask = np.where(arr > threshold, 1, 0)
normalized = (arr - arr.mean()) / arr.std()
```

## Error Handling and Validation

- Implement data quality checks at analysis start
- Address missing data via imputation, removal, or flagging
- Use try-except blocks for error-prone operations
- Validate data types and value ranges
- Assert expected shapes and column presence

```python
# Example validation pattern
assert df.shape[0] > 0, "DataFrame is empty"
assert "required_column" in df.columns, "Missing required column"
df["date"] = pd.to_datetime(df["date"], errors="coerce")
```

## Performance Optimization

- Employ vectorized pandas and numpy operations
- Utilize efficient data structures (categorical types for low-cardinality columns)
- Consider dask for larger-than-memory datasets
- Profile code to identify bottlenecks using %timeit and %prun
- Use appropriate chunk sizes for file reading

```python
# Example categorical optimization
df["category"] = df["category"].astype("category")

# Chunked reading for large files
chunks = pd.read_csv("large_file.csv", chunksize=10000)
result = pd.concat([process(chunk) for chunk in chunks])
```

## Statistical Analysis

- Use scipy.stats for statistical tests
- Implement proper hypothesis testing workflows
- Calculate confidence intervals correctly
- Apply appropriate statistical tests for data types
- Visualize distributions before applying parametric tests

## Dependencies

- pandas
- numpy
- matplotlib
- seaborn
- jupyter
- scikit-learn
- scipy

## Key Conventions

1. Begin analysis with exploratory data analysis (EDA)
2. Document assumptions and data quality issues
3. Use consistent naming conventions throughout notebooks
4. Save intermediate results for long-running computations
5. Include data sources and timestamps in notebooks
6. Export clean data to appropriate formats (parquet, csv)

Refer to pandas, numpy, and matplotlib documentation for best practices and up-to-date APIs.

© Mindrally · Apache-2.0 · Mindrally/skills

Similar skills

All skills for Data and databases →

From the same set214

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor