Interactive roadmap
Python for Data Analysis roadmap
Designed for complete beginners to learn how to write Python code, clean messy datasets, and create clear visualisations to answer real-world questions.
- 1
Python Programming Basics
0 of 4 done
Learn fundamental Python syntax and data structures to start writing your first scripts.
Take things one small step at a time, and remember that every expert programmer started by making simple syntax mistakes. - 2
Number Crunching with NumPy
0 of 3 done
Speed up your calculations using multi-dimensional arrays for numerical data.
NumPy makes heavy math feel effortless, so trust its built-in functions instead of writing complex loops. - 3
Working with Pandas DataFrames
0 of 3 done
Master table-based data manipulation using the powerful pandas library.
Think of pandas as Excel inside Python, giving you programmatic control over rows and columns. - 4
Cleaning and Transforming Data
0 of 4 done
Fix messy spreadsheets, handle missing values, and reshape data for analysis.
Data cleaning takes up most of an analyst's time, so patience and systematic checking will pay off. - 5
Analysis and Visualisation
0 of 3 done
Summarise your data with statistics and create helpful charts to share your findings.
Good charts tell a clear story at a glance, so keep your visualisations uncluttered and labelled. - 6
Full Analysis Project
0 of 3 done
Apply everything you have learned by completing an end-to-end data analysis project.
Bring all your skills together by framing a clear question and letting the data guide your story.
Learn it all, with a tutor that never sleeps
Every topic links to LevelUp lessons, practice exercises and the 24/7 AI Tutor. Your progress updates as you master lessons.
Every topic explained
Step 1: Python Programming Basics
- Understand how to store numbers, text, and true-false values in variables so your code can remember information.Python Documentation (Python Software Foundation)
Read more
Variables act like labelled storage boxes in your computer memory, holding different kinds of information called data types. You use text for names, numbers for quantities, and true or false values for simple checks. For instance, you might store a product price as a number and its description as text.
Understanding these types is vital because Python treats numbers and words differently. You can add two numbers together, but adding text behaves quite differently. Getting comfortable with variables gives you a solid foundation for handling larger datasets later on.
- Variables store values using an equals sign.
- Text values are placed inside quotation marks.
- Numbers can be whole or decimals.
- Data types dictate what operations are possible.
- Group multiple items together in lists and use loops to repeat actions without rewriting code.
Read more
Lists let you store multiple items in a single ordered collection, rather than creating a separate variable for every single item. Loops then allow you to run the exact same block of code over every item in that list automatically. For example, if you have a list of monthly sales figures, a loop can print each one out without you rewriting code.
This capability saves enormous amounts of time and effort when dealing with hundreds or thousands of rows. It transforms repetitive manual tasks into automated processes that scale effortlessly.
- Square brackets define a Python list.
- Loops repeat tasks for each item.
- Indentation is crucial for loop blocks.
- Lists can hold mixed data types.
- Write reusable blocks of code and use if statements to make decisions based on data.
Read more
Functions are reusable mini programs that take in some input, perform a task, and give back a result. Conditional logic uses if statements to check if a condition is met before deciding which code to run. Imagine writing a function that checks customer spending and applies a discount if the total exceeds a certain threshold.
Writing modular functions keeps your analysis scripts tidy, readable, and easy to test. Logic statements ensure your code can adapt dynamically to different data values.
- Functions start with the def keyword.
- If statements control decision making paths.
- Return statements send back final results.
- Parameters let functions accept outside inputs.
- (optional)
- Run your Python code in interactive notebook environments that let you mix notes, code, and charts.Project Jupyter
Read more
Jupyter Notebooks provide an interactive web based environment where code, explanatory text, and visual charts live together in one place. Instead of running a whole script at once, you execute code in small individual blocks called cells. This approach is widely used by data analysts to experiment, test ideas, and document their findings step by step.
Mastering this tool makes your data exploration workflow much smoother. You can see the immediate output of your code right below each cell.
- Notebooks split code into executable cells.
- Markdown cells let you write formatted text.
- Outputs appear directly beneath each cell.
- State is shared across cells in order.
Step 2: Number Crunching with NumPy
- Learn how NumPy arrays store numbers efficiently compared to standard Python lists.NumPy Documentation
Read more
NumPy arrays are grid-like structures designed specifically to hold numbers of the same type very efficiently. Unlike standard Python lists, arrays store data in continuous blocks of computer memory, allowing the processor to read and manipulate them at high speed. For instance, storing a million sensor readings in an array uses less memory and runs faster than a standard list.
This efficiency matters deeply in data analysis, where datasets often contain millions of individual values that need quick processing.
- Arrays require all items to match types.
- Memory storage is contiguous and fast.
- NumPy must be imported before use.
- Dimensions are referred to as axes.
- Perform fast mathematical operations across entire datasets and extract specific rows or columns easily.
Read more
Array math lets you apply mathematical operations across entire datasets instantly without writing explicit loops. Slicing lets you grab specific rows, columns, or ranges of numbers from your grid with simple index notation. For example, you can calculate the tax on every item price in a large inventory array in a single line of code.
This capability accelerates your workflow and keeps your code concise, which is essential when preparing large numerical datasets for deeper analysis.
- Math operations apply element by element.
- Slicing uses colon notation for ranges.
- Index numbers start counting from zero.
- Aggregations find sums and means quickly.
- (optional)
- Create random numbers to simulate scenarios and test your data processing code.
Read more
Generating random numbers allows you to create synthetic data, shuffle rows, or run statistical simulations when real data is scarce. NumPy includes robust tools to produce random numbers following various mathematical distributions. For instance, a retailer might simulate daily customer footfall using a random normal distribution to test inventory systems.
Testing your data processing pipelines with controlled random data ensures your code behaves correctly under unexpected conditions before touching real production files.
- Random modules handle simulation tasks.
- Seeds ensure reproducible random results.
- Distributions mimic real world variation.
- Integers and floats are both supported.
Step 3: Working with Pandas DataFrames
- Explore the two core pandas data structures used to hold rows and columns of information.Pandas Documentation
Read more
Pandas introduces two primary data structures: a Series, which is a single labelled column of data, and a DataFrame, which is a full two-dimensional table of rows and columns. You can picture a DataFrame as an electronic spreadsheet where every column has a name and every row has an index number. For instance, a customer database table is a classic DataFrame.
These structures form the absolute core of modern data analysis in Python, providing powerful built-in methods to inspect, shape, and transform tabular information.
- Series represent single table columns.
- DataFrames combine multiple columns together.
- Labels make column selection intuitive.
- Rows have numerical index identifiers.
- Import external spreadsheet files directly into your Python workspace as working tables.
Read more
Real world data rarely lives inside your script; it usually sits in external files like CSVs or Excel spreadsheets. Pandas provides straightforward import functions that read these files directly into your workspace as a ready-to-use DataFrame. For example, pulling last month sales figures from a downloaded CSV report takes just one line of code.
Knowing how to correctly load files with varying formats, separators, and headers is the very first practical step of any professional data project.
- Read csv imports comma separated files.
- Read excel handles spreadsheet workbooks.
- File paths must point accurately.
- Headers define column title rows.
- Select specific subsets of your table and sort values to find top performers or outliers.
Read more
Filtering allows you to home in on specific subsets of your table by setting logical conditions, such as finding all transactions over a certain amount. Sorting arranges your rows in ascending or descending order based on chosen column values. For instance, you might filter for orders in a specific city and sort them by delivery date.
This technique helps you answer specific business questions quickly, turning an overwhelming table of raw data into targeted insights.
- Boolean conditions filter specific rows.
- Sort values orders table contents.
- Multiple conditions combine with operators.
- Original indices can be reset.
Step 4: Cleaning and Transforming Data
- Identify empty cells in your dataset and decide whether to fill them in or drop them.
Read more
Real datasets are notoriously messy and often contain empty cells, recorded as missing values in pandas. You must decide whether to fill these gaps with placeholder values like averages or drop the incomplete rows entirely. For example, if a customer survey left out an age entry, you might fill it with the median age of other respondents.
Handling missing data properly prevents errors in your calculations and ensures your statistical summaries remain accurate and reliable.
- Isna detects empty cell locations.
- Dropna removes rows with missing values.
- Fillna replaces blanks with estimates.
- Counting nulls assesses data quality.
- Convert text columns into proper numbers or dates so calculations work correctly.
Read more
Sometimes numbers are accidentally saved as text strings because of stray characters or formatting issues, preventing mathematical calculations. You need to inspect your column types and explicitly convert them into proper numbers or dates. For instance, turning a column of price strings with currency symbols into clean floating-point numbers.
Fixing data types early is essential because grouping, filtering, and plotting functions rely heavily on correct underlying types to function properly.
- Dtypes attribute shows column types.
- Astype converts columns to new formats.
- To datetime parses date strings.
- Errors can be forced or ignored.
- Strip accidental spaces, fix capitalization, and replace unwanted characters in text columns.
Read more
Text columns often suffer from inconsistent capitalization, accidental trailing spaces, or unwanted punctuation marks. Pandas provides built-in string cleaning methods accessed through the str accessor to fix these issues at scale. For example, standardising email addresses to lowercase and stripping extra spaces ensures accurate grouping.
Clean text data prevents duplicate categories and ensures that searches or joins match correctly across different tables.
- Str lower standardises text case.
- Str strip removes surrounding spaces.
- Str replace swaps out characters.
- Methods apply across entire columns.
- (optional)
- Join separate tables together using common ID columns, similar to VLOOKUP in spreadsheets.
Read more
Data is often spread across multiple tables, such as having customer details in one file and purchase records in another. Merging allows you to join these separate tables together using shared identifier columns like customer ID numbers. This process works similarly to lookups in traditional spreadsheet software.
Mastering merges enables you to build comprehensive master datasets by combining disparate pieces of information for unified analysis.
- Merge joins tables on key columns.
- How parameter sets join types.
- Left and right keys handle mismatches.
- Suffixes resolve duplicate column names.
Step 5: Analysis and Visualisation
- Group rows by categories to calculate totals, averages, and counts for each group.
Read more
Grouping lets you split your dataset into categories, calculate statistics for each category independently, and combine the results back together. For instance, you can group sales records by store location to calculate total revenue and average transaction size for each branch.
This aggregation technique is the beating heart of business reporting, allowing you to roll up millions of granular rows into meaningful summary metrics.
- Groupby splits data into categories.
- Aggregations calculate sums and means.
- Multiple summary functions run together.
- Reset index restores table format.
- Plot line charts, bar charts, and histograms directly from your dataframes with simple commands.Matplotlib Documentation
Read more
Visualising data helps you spot trends, outliers, and patterns that are nearly impossible to notice by just reading raw numbers. Pandas includes straightforward plotting shortcuts built directly on top of matplotlib for line charts, bar charts, and histograms. For example, plotting monthly website traffic as a line chart reveals seasonal growth peaks instantly.
Creating quick charts helps you validate your analysis and communicate findings clearly to non-technical stakeholders.
- Plot method generates charts easily.
- Kind parameter selects chart types.
- Histograms display distribution shapes.
- Titles and labels clarify context.
- (optional)
- Build attractive statistical graphs with advanced colour palettes and themes.Seaborn Documentation
Read more
Seaborn is a dedicated statistical visualisation library that builds upon basic plotting tools to create more polished, publication-ready graphics. It handles complex data relationships automatically by adding attractive colour palettes and built-in themes. For example, creating a scatter plot with regression trend lines helps illustrate correlations between variables.
Using Seaborn elevates the quality of your reports, making your visual insights engaging and professional.
- Seaborn styles improve chart aesthetics.
- Relplot handles complex relationships.
- Hue adds categorical colour grouping.
- Themes apply consistent visual styling.
Step 6: Full Analysis Project
- Define clear business or research questions that your dataset can help answer.
Read more
A successful data analysis project always starts with clear questions rather than wandering aimlessly through a dataset. You define what you want to discover, such as identifying which product categories drive the highest profit margins. This focus guides your data cleaning and analytical steps.
Planning prevents overwhelm and ensures your final output actually answers the specific business or research question you set out to tackle.
- Formulate specific analytical questions.
- Identify required data points early.
- Determine success criteria upfront.
- Keep project scope realistic.
- Import, clean, analyse, and chart your chosen dataset from scratch in a notebook.
Read more
Execution brings your entire workflow together, from importing raw files and cleaning messy cells to grouping data and generating visual charts. You run this sequence inside a Jupyter Notebook, documenting each stage as you go. For example, loading sales logs, fixing missing values, calculating regional totals, and plotting top performers.
This end-to-end process builds your confidence and proves you can handle real data challenges independently from start to finish.
- Follow a logical workflow sequence.
- Validate results at each step.
- Keep code clean and commented.
- Address errors as they arise.
- Write clear markdown explanations alongside your charts to tell a compelling story with data.
Read more
An analysis is only as good as your ability to communicate its findings to others who did not write the code. You combine formatted markdown text blocks, data tables, and well-labelled charts to tell a compelling story. For instance, explaining why a specific marketing campaign succeeded using visual evidence.
Clear reporting turns complex technical work into actionable business insights that stakeholders can understand and act upon.
- Combine text explanations with charts.
- Highlight key actionable takeaways.
- Keep visual labels clean and clear.
- Structure narratives logically.