Learning map · Track 14 · advanced
Data Analysis with Python
This track turns the Python you already know into a working data analyst's toolkit. You start with NumPy arrays and vectorised arithmetic, the foundation everything else is built on, then move to pandas: loading CSV files into DataFrames, selecting and filtering rows, cleaning messy real-world data (missing values, duplicates, numbers stored as text, inconsistent spelling), deriving new columns, grouping and pivoting, merging tables safely and working with dates and time series. Every exercise runs real pandas code against realistic synthetic datasets — store sales, a staff survey, website traffic, warehouse sensors and exam results — and is graded automatically.
The last two lessons are about turning numbers into decisions: choosing and labelling charts with matplotlib, avoiding misleading visuals, and writing a findings paragraph backed by evidence. The track ends with an end-to-end mini project on a messy half-year sales export. It is for learners who are comfortable with functions, data structures and files (Tracks 1–13) and want to analyse data with confidence.
By the end of this track you can
- Load CSV data into pandas, inspect it and select or filter exactly the rows and columns a question needs
- Clean messy data: handle missing values, duplicates, wrongly typed columns, inconsistent text and implausible values with explicit rules
- Summarise data with vectorised calculations, groupby, pivot tables and time-based resampling
- Combine tables with merge and concat and verify the result with row counts and key checks
- Choose, draw and label honest line, bar, histogram and scatter charts with matplotlib
- Carry out an end-to-end analysis and communicate the findings in a short, evidence-based paragraph
Lessons
- 1NumPy arraysStore numbers in NumPy arrays, read their dtype and shape, and pick out values with indexes, slices and boolean masks.40 min · 3 exFree
- 2Vectorised operationsDo arithmetic on whole arrays at once, let broadcasting line up shapes, and aggregate along rows or columns with axis.40 min · 3 exMembers
- 3pandas SeriesUse a pandas Series — a labelled column of values — for vectorised calculations, counting categories and quick summaries.40 min · 4 exMembers
- 4DataFrames and loading dataLoad a CSV file into a pandas DataFrame, inspect its shape, columns and types, and select the columns you need.40 min · 3 exMembers
- 5Selecting and filteringPick rows and columns by label with loc and by position with iloc, filter rows with conditions or query, and sort the result.45 min · 4 exMembers
- 6Cleaning dataFind and handle missing values, duplicates, wrongly typed columns, inconsistent text and implausible values before analysing.50 min · 4 exMembers
- 7Transforming columnsDerive new columns with vectorised arithmetic, np.where, map, the str accessor and pd.cut, and know when apply is (and isn't) the right tool.45 min · 4 exMembers
- 8Grouping and aggregatingAnswer per-group questions with groupby, compute several statistics at once with agg, and build two-way summaries with pivot_table and crosstab.50 min · 4 exMembers
- 9Combining dataJoin tables on a key with merge, choose the right join type, stack tables with concat, and check that a merge did what you expected.50 min · 4 exMembers
- 10Dates in pandasTurn date text into real datetimes, extract parts with the dt accessor, measure durations, and resample a time series by week or month.45 min · 3 exMembers
- 11Visualising dataDraw line, bar, histogram and scatter charts with matplotlib and pandas, label them properly, and pick the chart that fits the question.50 min · 4 exMembers
- 12Communicating findingsTurn analysis into conclusions people can act on — honest charts, well-chosen numbers and a clear findings paragraph — then run an end-to-end analysis of a messy sales export.90 min · 5 exMembers