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.

    Your progress0% · 0 of 20 topics
    Done Learning Skipped OptionalClick any topic to learn more and mark your progress.
    1. 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. 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. 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. 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. 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. 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.
    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.
    Python Documentation (Python Software Foundation)
    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.
    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.
    Project Jupyter

    Step 2: Number Crunching with NumPy

    Learn how NumPy arrays store numbers efficiently compared to standard Python lists.
    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.
    NumPy Documentation
    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.
    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.
    Pandas Documentation
    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.
    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.
    Matplotlib Documentation
    (optional)
    Build attractive statistical graphs with advanced colour palettes and themes.
    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.
    Seaborn Documentation

    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.

    Related roadmaps