Module 01 · Applied project
Bike Sharing Dataset Explorer
Build a small Python project that loads UCI’s hourly Bike Sharing CSV, audits the raw data, creates reusable summaries and saves a short visual report. The goal is not to train a model yet. The goal is to produce a trustworthy, reproducible view of the dataset that the Classical Machine Learning module can use later.
Implementation plan
Build it in six steps
- 01 1 · Set up the project. Create the folder, virtual environment, dependencies and script entry point.
- 02 2 · Build the Python core. Use functions and collections to keep parsing and summary logic small and testable.
- 03 3 · Load the source data. Read
hour.csv, record the filename and checksum, and inspect its raw schema. - 04 4 · Audit the table. Measure missingness, duplicate records, dtypes, ranges and category values before cleaning.
- 05 5 · Create summaries. Use pandas and NumPy to group by hour and weekday, calculate summaries and save output tables.
- 06 6 · Explain the data. Save three labeled plots and a short report with observations, caveats and the exact input snapshot.
What to submit
Deliverables
requirements.txtand a short README with setup/run instructions.- A data audit report with file checksum, row/column count, dtypes, missingness and duplicate count.
- A reusable Python package layout with separate loading, audit and reporting functions.
- A grouped summary CSV and at least three clearly labeled charts.
- A short Markdown report with 3–5 evidence-based observations and limitations.
Quality gate
Before you finish
- testsThe loader fails clearly when the source file is missing.
- testsThe audit output reconciles row counts before and after transformations.
- testsGrouped observation counts sum to the number of rows included in the summary.
- reproducibilityA fresh environment can recreate the reports from the same source CSV.
Follow the module
Lessons for this project
- 01.01 Set Up a Python ProjectRun Python from the terminal, create an isolated environment and keep a small project reproducible.
- 01.02 Values, Types & ExpressionsWork confidently with numbers, strings, booleans, `None` and explicit type conversion.
- 01.03 Decisions & LoopsUse conditions and iteration to process collections without writing repetitive code.
- 01.04 Collections & ComprehensionsChoose lists, tuples, sets and dictionaries based on how the data is used.
- 01.05 Functions & ModulesTurn repeated steps into small functions and split a project into importable files.
- 01.06 Files, CSV & ErrorsRead and write files safely, work with paths and handle predictable failures.
- 01.07 NumPy Arrays & VectorizationUnderstand array shape, dtype, indexing, aggregation and element-wise operations.
- 01.08 Pandas: Load, Inspect & SelectLoad a CSV into a DataFrame, inspect its schema and select the rows and columns you need.
- 01.09 Clean, Group & Combine DataHandle missing values and types, summarize groups and combine tables using explicit keys.
- 01.10 Visualize & Explain the DatasetChoose a chart for a question, label it clearly and turn the analysis into a repeatable report.
How to assess your work
Project rubric
Reproducibility
Setup and run steps work in a fresh environment.
Input identity and dependency versions are recorded; outputs regenerate cleanly.
Data audit
Schema, missing values and duplicates are reported.
Ranges, units, unusual categories and row-count reconciliation are also explained.
Code structure
Loading, audit and reporting are separated into functions.
Functions have clear contracts and are straightforward to test.
Communication
Charts and a short report are included.
Every chart answers a clear question and observations are separated from causal claims.