DEV Community

Sangmin Lee
Sangmin Lee

Posted on • Originally published at claudeguide.io

Claude Code for Data Science: EDA & Visualization Workflows

Originally published at claudeguide.io/claude-code-data-science

Claude Code for Data Science: EDA, Analysis, and Visualization Workflows

Yes — Claude Code is a strong fit for data science work, cutting EDA boilerplate by 60-80% on the standard pandas/sklearn/matplotlib stack. Drop a CSV path into your terminal, describe your goal in plain English, and Claude Code writes the pandas EDA, feature engineering, sklearn pipeline, and matplotlib visualization code for you — immediately runnable in your existing environment. It doesn't replace your Python skills; it removes the friction of boilerplate so you spend time on interpretation, not syntax lookup. For teams running Jupyter notebooks, it integrates via the %claude magic or by writing and running .py scripts in the same project directory. This guide covers every major workflow with production-ready code examples.


EDA Workflow: Describe a CSV, Claude Generates the Analysis

The fastest way to start is to give Claude Code a description of your dataset and ask for a full EDA script.

Prompt to Claude Code:

I have a CSV at data/sales_2025.csv with columns:
date (YYYY-MM-DD), region, product_category, revenue, units_sold, discount_pct, customer_id

Write a complete EDA script that:
1. Loads the data and prints shape, dtypes, null counts
2. Plots revenue distribution and a monthly trend line
3. Shows correlation between discount_pct and revenue
4. Prints top 5 regions by total revenue
Enter fullscreen mode Exit fullscreen mode

Generated output:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# --- Load & inspect ---
df = pd.read_csv("data/sales_2025.csv", parse_dates=["date"])
print("Shape:", df.shape)
print("\nDtypes:\n", df.dtypes)
print("\nNull counts:\n", df.isnull().sum())
print("\nSample:\n", df.head(3))

# --- Revenue distribution ---
fig, axes = plt.subplots(1, 2, figsize=(12, 4))
axes[0].hist(df["revenue"], bins=50, edgecolor="white", color="#4A90D9")
axes[0].set_title("Revenue Distribution")
axes[0].set_xlabel("Revenue ($)")
axes[0].set_ylabel("Count")

# --- Monthly trend ---
monthly = df.resample("ME", on="date")["revenue"].sum().reset_index()
axes[1].plot(monthly["date"], monthly["revenue"], marker="o", linewidth=2, color="#E74C3C")
axes[1].set_title("Monthly Revenue Trend")
axes[1].set_xlabel("Month")
axes[1].set_ylabel("Total Revenue ($)")
axes[1].tick_params(axis="x", rotation=45)
plt.tight_layout()
plt.savefig("outputs/eda_revenue.png", dpi=150)
plt.show()

# --- Discount vs Revenue correlation ---
print("\nCorrelation (discount_pct vs revenue):",
      df["discount_pct"].corr(df["revenue"]).round(3))

fig2, ax = plt.subplots(figsize=(7, 4))
ax.scatter(df["discount_pct"], df["revenue"], alpha=0.3, s=15, color="#2ECC71")
ax.set_xlabel("Discount %")
ax.set_ylabel("Revenue ($)")
ax.set_title("Discount vs Revenue")
plt.tight_layout()
plt.savefig("outputs/eda_discount_corr.png", dpi=150)
plt.show()

# --- Top regions ---
top_regions = (
    df.groupby("region")["revenue"]
    .sum()
    .sort_values(ascending=False)
    .head(5)
    .reset_index()
)
top_regions.columns = ["Region", "Total Revenue"]
print("\nTop 5 Regions:\n", top_regions.to_string(index=False))
Enter fullscreen mode Exit fullscreen mode

Claude Code generates this in seconds and saves it to a file you can run immediately. If anything fails (missing column, wrong dtype), paste the error back and it fixes it.


Feature Engineering Assistance

Feature engineering is where many data science projects stall — you know what you want conceptually but translating it to pandas is tedious. Claude Code handles this well.

Prompt:



From my sales DataFrame, engineer these features:
- days_since_last_purchase (per customer_id, sorted by date)
- rolling_7d_revenue (per customer, 7-day rolling sum)
- is_high_value (1 if revenue 

---

## FAQ

### Can Claude Code read my actual CSV files directly?

Yes. If your CSV is in the project directory, Claude Code can read it using its built-in file tools. It will inspect the file, identify columns and dtypes, and generate analysis code that references the real column names. For very large files (

---

*Related: [How to Use Claude for Data Analysis](/how-to-use-claude-for-data-analysis) · [Claude Code Complete Guide](/claude-code-complete-guide) · [Haiku vs Sonnet vs Opus: Which Model](/claude-haiku-sonnet-opus-which-model)*
Enter fullscreen mode Exit fullscreen mode

Top comments (0)