Back to blog
jupyter notebook alternative quick data analysis duckdb local

Why I Stopped Opening Jupyter Notebooks for Simple Data Questions

March 18, 2026

Why I Stopped Opening Jupyter Notebooks for Simple Data Questions

I have a CSV file. I want to know: how many rows have a null in the user_id column? What’s the average order value by region? Which records have a status of “pending” that are older than 30 days?

Simple questions. The kind you answer in 30 seconds once you’re set up.

For the longest time, my answer to these questions was: open a Jupyter notebook.

I’ve mostly stopped doing that.


The problem isn’t Jupyter

Let me be clear: Jupyter is a genuinely great tool. It’s the right choice for exploratory data science, building reproducible analyses, presenting findings with narrative, or doing anything that needs to run in sequence and be documented as it goes.

But for a quick data question — the kind you need answered in two minutes before a meeting — Jupyter brings a lot of ceremony.

The notebook tax

Here’s what “open a Jupyter notebook” actually looks like:

  1. Open terminal. Navigate to the right directory, or not — and then deal with relative path errors.
  2. Run jupyter notebook or jupyter lab. Wait for it to start. Switch to the browser tab that opened.
  3. Create a new notebook. Choose a kernel. Or find an existing notebook that won’t be full of stale outputs from the last time you ran it.
  4. First cell: import pandas as pd. Run it. Wait for the import.
  5. df = pd.read_csv("path/to/file.csv"). Run it. Hope the path is right.
  6. Start writing your actual query in pandas syntax. Which is fine, except I always have to mentally translate from SQL: “GROUP BY region and aggregate… that’s groupby('region').agg()… and I need to reset_index after or the column name is wrong…”

At this point I’ve spent five minutes on setup and I’m still translating the query I already knew how to write in SQL.

And when I’m done, there’s a notebook sitting there with cells and outputs I have to either clean up or ignore. Next time I need to do something similar, I’ll open it and find stale outputs that don’t match the current data.

”Just use pandas in a script”

Sure. Or I write import pandas as pd and df = pd.read_csv(...) every single time in a scratch file, name it something like temp_analysis.py, and then feel vaguely bad about it later.

The problem isn’t the language. The problem is that for a quick data question, I don’t want a project. I don’t want a file. I don’t want to think about where this script lives or whether I should commit it.

I want to ask a question and get an answer.

What I actually want

I want to drop a file into something and type SQL. Not because SQL is objectively better than pandas — they’re just different APIs for the same kinds of questions — but because for exploratory work, SQL maps directly to what I’m thinking:

  • “How many rows where X?” → SELECT COUNT(*) WHERE X
  • “Average by group?” → SELECT region, AVG(value) FROM ... GROUP BY region
  • “Show me the top 10?” → ORDER BY value DESC LIMIT 10

No imports. No translating. No kernel. Just the question.

The tool I use now

About six months ago I started using RowLeap for this kind of work. It’s a desktop app: drag a CSV, Parquet, or SQLite file in, and you’re running SQL immediately. DuckDB under the hood, so it handles multi-GB files without complaining.

There’s no project to set up, no kernel to start, no imports to write. Open the app, drop the file, type the query. The time between “I have this question” and “I have this answer” is usually under 30 seconds.

It’s not a replacement for Jupyter. When I’m building something reproducible — a documented analysis, an ML preprocessing pipeline, a presentation — I still use notebooks. That’s what they’re for.

But for the quick stuff? The “does this data look right?” and “what’s the distribution of this column?” questions that come up a dozen times a day? I stopped opening Jupyter for those a while ago, and I don’t miss it.


RowLeap is a native desktop app for querying CSV, SQLite, and Parquet files with SQL. Download the free trial →

Try RowLeap free for 30 days

No cloud. No accounts. Just your data and SQL.

Download free trial →