DATA ANALYSIS WITH PYTHON AND PANDAS
Programming Line — 32 free written lectures with code, solutions, and a capstone.
Course: https://learn.programmingline.com/learn/data-analysis-python

PREREQUISITES
Basic Python variables, functions, lists, and imports. Start with the site's
Python course if those are unfamiliar. No paid software or account is needed.

SETUP
Use Python 3.12 (the kit was tested on Python 3.12.14).
From this extracted folder:
  python -m venv .venv
Windows:
  .venv\Scripts\python -m pip install -r requirements.txt
  .venv\Scripts\python run_course.py --lesson 1 --examples-only
  .venv\Scripts\python run_course.py
  .venv\Scripts\python -m pytest -q
macOS / Linux:
  .venv/bin/python -m pip install -r requirements.txt
  .venv/bin/python run_course.py --lesson 1 --examples-only
  .venv/bin/python run_course.py
  .venv/bin/python -m pytest -q
If your initial interpreter is named python3, use python3 to create the venv.
After activating the environment you can use python for the commands above.

The requirements record the exact tested package versions. Examples use pandas
3.x behavior, including Copy-on-Write. Earlier pandas versions may differ.
First-time installation downloads packages from the normal Python package index.

WORKING THROUGH THE COURSE
Open curriculum.html for the offline course index. Each offline lecture includes
the original explanation, worked example, captured output, assignment, solution,
knowledge check, and source references. Read in order, change the examples, and
complete the assignment before opening the solution. Lesson references and the
public site links require Internet access; the example data is entirely local.

run_course.py sets the project import path and runs each numbered example and
solution in a fresh Python process. This prevents hidden notebook state from
making broken examples appear to work. To run a single solution use the runner
with --lesson N (without --examples-only), which checks both files for that lesson.
If you invoke examples/NN.py directly, set PYTHONPATH to this project's root.

FILES
  data/orders_raw.csv        244 fictional raw order rows, including planted defects
  data/customers.csv         48 fictional customer dimension rows
  DATA_DICTIONARY.txt        grain, units, fields, missingness and metric policies
  course_data.py            loading and cleaning rules
  examples/01.py ... 32.py  independently launched lecture examples
  solutions/01.py ... 32.py complete examples plus worked practice solutions
  pipeline.py              command-line report builder
  test_pipeline.py         17 meaningful contract and failure-path tests
  outputs/                 verified example output, charts, and sample report bundle
  CAPSTONE_BRIEF.txt        deliverables and 100-point self-review rubric
  lessons/                 complete offline lecture HTML pages

REBUILD THE FINAL REPORT
  python pipeline.py --input data/orders_raw.csv --out outputs/my-report
Open outputs/my-report/analysis-report.html. Every amount ending in _paise is
integer paise. INR displays divide paise by 100. The known fixture contains
239 accepted orders and net merchandise revenue of 24,112,420 paise.

SOURCE AND LIMITS
All customer IDs, transactions, and business patterns are fictional. The data is
generated deterministically for teaching, not sampled from a real company.
No findings should be presented as real commercial evidence. The course teaches
descriptive analysis and statistical assumptions; it does not provide accreditation,
a certificate, or a job guarantee. Basic exercises are not a production compliance
or security certification. Read the limitations in each lecture.

REUSE
Original course code is provided under the MIT license in LICENSE.txt.
The fictional CSV datasets are dedicated to the public domain under CC0 1.0:
https://creativecommons.org/publicdomain/zero/1.0/
The written course lessons are copyright Programming Line; personal study is welcome.

Prepared and verified: 2026-10-24.
