← All courses

🐍 Python for Data

pandas and polars, DuckDB from Python, notebooks and scripts — the other half of every data job ad.

No lessons published yet — this is the roadmap, so you can see exactly what the course will cover before it lands.

Before you start: Learn SQL — Series 1. Half of this track is the same ideas in another syntax — filter, group, join — taught against the same Northwind data, so the two reinforce each other instead of competing. You are never asked to write clever SQL here, but from Series 2 onward you query a real database from Python and have to know what the answer should be.

Short on time? The 25 episodes marked core are the shortest path to being productive at work. Start there and pick up the rest whenever a job asks for them.


Series 1 · Python for Data Fundamentals

Python basics, then pandas — filter, group and join data

  1. 01

    Your First Script — Read a CSV File and Answer One Question About It

    corebeginnercoming soon
  2. 02

    Strings, Numbers, Lists & Dicts — The Four Types You Use in Every Script

    corebeginnercoming soon
  3. 03

    Loops, Conditionals & Functions — Doing the Same Work Over Many Rows

    corebeginnercoming soon
  4. 04

    Files, Paths & Encodings — Reading and Writing Text in the Right Encoding

    corebeginnercoming soon
  5. 05

    DataFrames — pandas and polars, and Which to Reach For

    corebeginnercoming soon
  6. 06

    Select, Filter & Sort — The SQL Ideas You Know, in Python Syntax

    corebeginnercoming soon
  7. 07

    groupby & Aggregate — GROUP BY Without the Database

    corebeginnercoming soon
  8. 08

    merge & join — Combining Two DataFrames on a Key

    corebeginnercoming soon
  9. 09

    Missing Data & dtypes — NaN, None and Getting the Column Type Right

    corebeginnercoming soon
  10. 10

    Project — From a Messy CSV to a Clean Table

    corebeginner#projectcoming soon

Series 2 · Working With Real Data

files, databases and APIs — nothing pre-cleaned

  1. 01

    CSV, JSON & Parquet — Choosing a File Format, and Why Parquet Usually Wins

    coreintermediatecoming soon
  2. 02

    Excel Files — Reading the Spreadsheets Your Business Sends You

    intermediatecoming soon
  3. 03

    DuckDB from Python — Run SQL on Files and DataFrames, No Server

    coreintermediatecoming soon
  4. 04

    psycopg & SQLAlchemy Core — Querying PostgreSQL from Python

    coreintermediatecoming soon
  5. 05

    Parameterized Queries — Passing Values Safely Into a Query

    coreintermediatecoming soon
  6. 06

    HTTP APIs & JSON — Fetching Data With Pagination, Retries and Rate Limits

    coreintermediatecoming soon
  7. 07

    Dates, Times & Time Zones — Storing and Comparing Moments Correctly

    coreintermediatecoming soon
  8. 08

    Text Cleaning — Trimming, Splitting and Matching Messy Strings

    coreintermediatecoming soon
  9. 09

    Cleaning & Validation — Types, Ranges and Rows You Should Reject

    coreintermediatecoming soon
  10. 10

    pivot, melt & Reshape — Moving Data Between Wide and Long

    intermediatecoming soon
  11. 11

    Quick Plots — Looking at Your Data While You Work

    intermediatecoming soon
  12. 12

    Notebooks vs Scripts — Where Each One Belongs

    coreintermediatecoming soon
  13. 13

    Project — One Answer From a CSV, a Database and an API

    coreintermediate#projectcoming soon

Series 3 · Python That Ships

code someone else can run next month

  1. 01

    venv, pip & uv — Environments That Still Work Next Month

    coreadvancedcoming soon
  2. 02

    Project Structure & Imports — From One File to a Real Package

    advancedcoming soon
  3. 03

    argparse & CLI Scripts — Turning a Notebook Into a Job You Can Run

    coreadvancedcoming soon
  4. 04

    Config & Secrets — Keeping Passwords Out of Your Code

    coreadvancedcoming soon
  5. 05

    Logging & Error Handling — What to Log When a Job Fails

    coreadvancedcoming soon
  6. 06

    pytest — Testing the Transform Without a Database

    advancedcoming soon
  7. 07

    Performance & Memory — Chunking, Vectorizing, and When to Push It Back to SQL

    advancedcoming soon
  8. 08

    Threads for Slow API Calls — and Why They Do Not Speed Up pandas

    advancedcoming soon
  9. 09

    polars & Lazy Evaluation — When pandas Runs Out of Room

    advancedcoming soon
  10. 10

    Packaging & Hand-Off — Making It Runnable by Someone Else

    advancedcoming soon
  11. 11

    Project — A Tested Python Job That Loads Northwind End to End

    coreadvanced#projectcoming soon

Where this leads


Not here, on purpose

  • Machine learning — features, training, model selection — not covered; this track is about moving and shaping data. For LLM-era work see AI for Data
  • Charts other people read, and dashboards — covered in BI & Data Visualization — here you plot only to see the data yourself
  • Scheduling, cron and running jobs in production — covered in Data Ops — this track gets the script ready to be scheduled
  • Web apps and web APIs — Django, Flask, FastAPI — not covered anywhere in the academy; this is Python for people who move data, not people who serve it
  • Whether to learn this or Java & Groovy for Data — neither is a prerequisite for the other — same job, two languages. Pick the one your team already runs; the projects in both tracks are deliberately identical so the second one is short
  • Designing the schema you are loading into — covered in Data Modeling — here the tables already exist and your job is to fill them correctly
  • Writing the SQL itself — joins, window functions, tuning — covered in Learn SQL. In this course you only send SQL you already know, and Series 2 · 05 and Series 3 · 30 are about deciding what runs in the database rather than in pandas
  • Running the same job every night — watermarks, incremental loads, backfills, orchestration — covered in ETL & Data Pipelines, which is what happens when a job has to run for a year. In this course, Series 3 gets one correct, tested, repeatable run