🐍 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
- 01
Your First Script — Read a CSV File and Answer One Question About It
corebeginnercoming soon - 02
Strings, Numbers, Lists & Dicts — The Four Types You Use in Every Script
corebeginnercoming soon - 03
Loops, Conditionals & Functions — Doing the Same Work Over Many Rows
corebeginnercoming soon - 04
Files, Paths & Encodings — Reading and Writing Text in the Right Encoding
corebeginnercoming soon - 05
DataFrames — pandas and polars, and Which to Reach For
corebeginnercoming soon - 06
Select, Filter & Sort — The SQL Ideas You Know, in Python Syntax
corebeginnercoming soon - 07
groupby & Aggregate — GROUP BY Without the Database
corebeginnercoming soon - 08
merge & join — Combining Two DataFrames on a Key
corebeginnercoming soon - 09
Missing Data & dtypes — NaN, None and Getting the Column Type Right
corebeginnercoming soon - 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
- 01
CSV, JSON & Parquet — Choosing a File Format, and Why Parquet Usually Wins
coreintermediatecoming soon - 02
Excel Files — Reading the Spreadsheets Your Business Sends You
intermediatecoming soon - 03
DuckDB from Python — Run SQL on Files and DataFrames, No Server
coreintermediatecoming soon - 04
psycopg & SQLAlchemy Core — Querying PostgreSQL from Python
coreintermediatecoming soon - 05
Parameterized Queries — Passing Values Safely Into a Query
coreintermediatecoming soon - 06
HTTP APIs & JSON — Fetching Data With Pagination, Retries and Rate Limits
coreintermediatecoming soon - 07
Dates, Times & Time Zones — Storing and Comparing Moments Correctly
coreintermediatecoming soon - 08
Text Cleaning — Trimming, Splitting and Matching Messy Strings
coreintermediatecoming soon - 09
Cleaning & Validation — Types, Ranges and Rows You Should Reject
coreintermediatecoming soon - 10
pivot, melt & Reshape — Moving Data Between Wide and Long
intermediatecoming soon - 11
Quick Plots — Looking at Your Data While You Work
intermediatecoming soon - 12
Notebooks vs Scripts — Where Each One Belongs
coreintermediatecoming soon - 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
- 01
venv, pip & uv — Environments That Still Work Next Month
coreadvancedcoming soon - 02
Project Structure & Imports — From One File to a Real Package
advancedcoming soon - 03
argparse & CLI Scripts — Turning a Notebook Into a Job You Can Run
coreadvancedcoming soon - 04
Config & Secrets — Keeping Passwords Out of Your Code
coreadvancedcoming soon - 05
Logging & Error Handling — What to Log When a Job Fails
coreadvancedcoming soon - 06
pytest — Testing the Transform Without a Database
advancedcoming soon - 07
Performance & Memory — Chunking, Vectorizing, and When to Push It Back to SQL
advancedcoming soon - 08
Threads for Slow API Calls — and Why They Do Not Speed Up pandas
advancedcoming soon - 09
polars & Lazy Evaluation — When pandas Runs Out of Room
advancedcoming soon - 10
Packaging & Hand-Off — Making It Runnable by Someone Else
advancedcoming soon - 11
Project — A Tested Python Job That Loads Northwind End to End
coreadvanced#projectcoming soon
Where this leads
- Build Your Own: Algotrading System — starts from Series 1.
- pandas — starts from Series 1.
- Polars — starts from Series 1.
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