At some point in your data career, SQL alone is not enough.
When the dataset is large, you need to automate something that would take hours to do manually or you know that this complex analysis you will have to rerun periodically — Python is the answer.
There is often simply no cleaner way to wrangle data and find the answer than writing a script.
Modern tools like Databricks even let you use SQL and Python in the same notebook, switching between them depending on what problem you have. These tools/skills are not rivals — they are complementary.
We have talked a lot about SQL in this newsletter, because I think SQL is still the king. But today, let's talk about Python.
Before we proceed — a small ad. Your clicks on the ads help me to cover newsletter hosting fees. Each click makes me ~$1. Thank you for your support!
Frontier models perform better in Attio’s agent harness.
We gave GPT-6 Astra the same job twice: analyze 100 sales calls and draft the follow-ups, once in Ask Attio and once in ChatGPT.
Ask Attio finished in 4 minutes 49 seconds. ChatGPT took 26 minutes 11 seconds, about 5.4 times as long.
The most ambitious GTM work requires more than frontier intelligence. It requires architecture that can put that intelligence to work at scale.
First, a note on tools
Before you write a single line of Python, you need somewhere to write it.
Two options I recommend:
VS Code is a free code editor from Microsoft that works on Windows and Mac. It is what most professionals use day to day. You will need to install Python separately (python.org), but once it is set up it is clean, fast, and has excellent extensions for data work.
Google Colab (colab.research.google.com) is a free, browser-based notebook that runs entirely in the cloud. No installation needed — you open it in Chrome and start writing code immediately. It comes with most data libraries pre-installed. If you want to get started today without any setup, Colab is the answer.
I personally started with Jupyter Notebook and had plenty of issues trying to install that on my machine 🙈. This is why my suggestion is to start with Colab to remove the friction of getting started. Move to VS Code once you are comfortable and want a more professional environment.
One important distinction: Python is the language. VS Code and Colab are just the places you write it — the same way SQL is the language and SSMS, MySQL or DBeaver are the tools you use to write it.
Stage 1 — Python basics (start here)
Your first goal is simple: understand how Python thinks.
Learn these first: variables, data types (strings, integers, floats, booleans), lists, dictionaries, if/else statements, for loops, and functions.
This sounds like a lot, but you do not need to memorise everything. You need to understand what each thing does and be able to look up the syntax when you need it.
One thing beginners often skip: learn how to read error messages.
Python's error messages are actually quite descriptive compared to other tools/languages.
A NameError means you referenced something that does not exist.
An IndexError means you tried to access a position in a list that is not there. Getting comfortable with errors early saves hours of frustration later.
Where to practise:
Kaggle's free Python course (kaggle.com/learn/python) is one of the best starting points — it runs entirely in the browser, no setup needed, and teaches through practical exercises rather than theory.
W3Schools (w3schools.com/python) is excellent as a quick reference when you need to look up syntax. This is my trusted resources which I used to learn SQL and Python at the beginning.
Also learn python indentation. The creator of Python deliberately wanted to make this language easy to read, just like an ordinary English language. Most of programming languages have curly brackets to specify a block of code, python uses spaces. If you miss a space, all code is wrong.
Stage 2 — pandas for data manipulation
This is where Python starts to feel genuinely useful for analysis.
pandas is the core library for working with data in Python. Think of it as Excel, but programmable.
A DataFrame is the equivalent of a spreadsheet — rows and columns — and pandas gives you the tools to filter, sort, group, merge, and transform it.
Learn these first: loading data with read_csv(), selecting columns, filtering rows with conditions, groupby() and aggregation, handling missing values, and merging DataFrames.
The concept that confuses most beginners: indexing.
In pandas, you can select data by label (.loc) or by position (.iloc). They look similar but behave differently. Understanding the difference early will save you a lot of confusion.
One thing worth knowing: pandas syntax can feel verbose compared to SQL. df[df['status'] == 'completed'] is the equivalent of WHERE status = 'completed'. Once you make that mental translation, it starts to click.
Over time you might also learn polars and duckdb that allow you to work with truly massive datasets, but I view them as addition to pandas, not a replacement.
Stage 3 — Data visualisation
This stage is about turning your findings into something visual.
Start with two libraries:
Matplotlib is the foundation — most other visualisation libraries are built on top of it. Let me put it this way, it is ugly but it does the job.
On the flip side, it gives you precise control over every element of a chart and you can push it to turn into something nicer.
Seaborn sits on top of Matplotlib and produces much better-looking charts with less code. Bar charts, line graphs, histograms, scatter plots, heatmaps is what you should focus on.
The goal at this stage is not beautiful design. It is being able to look at your data visually, spot patterns, and communicate a finding.
Stage 4 — Exploratory Data Analysis (EDA)
This is where the previous stages come together into something that looks like real analytical work.
EDA is the process of taking a dataset you have never seen before and making sense of it. You look at the shape of the data, check for data issues if any, understand the distributions, spot outliers, and start forming hypotheses.
The libraries to add here: NumPy for numerical operations (it works quietly underneath pandas most of the time), and pandas-profiling or ydata-profiling, which generates a full summary report of any DataFrame in two lines of code. It is a fast way to get an overview of a new dataset before you start digging.
A standard EDA flow looks like this:
Load the data and check its shape and column types
Count missing values per column
Look at summary statistics (
.describe())Plot distributions of key columns
Check for correlations
Form a question and start answering it
Start with a business question — even a simple one — and let that guide what you look at.
Stage 5 — Build something real
The best way to consolidate everything is to stop doing exercises and give yourself an actual dataset and a real question.
Pick something from Kaggle — a dataset that interests you — and work through a full analysis. Load it, clean it, explore it, visualise it, and write up what you found.
I was recently asked why I recommend Kaggle datasets to use if it is like the most hated resource and most of data creators tell you to avoid it at any cost 😃.
The truth is, it is a great resource, but most people don’t click beyond the second page. Just like with google search, we used to check first couple of links, never looking for gems hidden on page 5.
For example, Netflix dataset is very commonly used (https://www.kaggle.com/datasets/shivamb/netflix-shows/data).
If you scroll a bit, at the bottom you can find activity overview. In this specific example, this dataset was downloaded 821k times!

However, you can search a dataset based on the date published, or relevance and then check number of views and downloads. So it is up to you if you want to practice on a popular dataset, which will allow you to potentially find some answers and tips if you get stuck, or you can choose something new.
Also, it is always a great option to download Kaggle dataset, and then ask AI (like ChatGPT) to generate a new unique dataset using the attached as the reference. So it would have some similar patterns, but you can make more rows or less columns. And that one will be truly yours and unique.
Useful resources
Kaggle Python course — kaggle.com/learn/python — free, browser-based, practical from day one
Kaggle Pandas course — kaggle.com/learn/pandas — the natural next step after the Python course
W3Schools Python — w3schools.com/python — go-to reference for syntax
Google Colab — colab.research.google.com — start coding immediately, no installation needed
VS Code — code.visualstudio.com — free, professional code editor for when you are ready to set up a local environment
Python download — python.org/downloads — needed if you go the VS Code route
Real Python — realpython.com — practical tutorials for going deeper on specific topics
The tools will change. The workflow — question, data, analysis, finding — will not.
Keep pushing 💪,
Karina
This week on YouTube:
How I use AI in a data science workflow - https://youtu.be/0jq_Iy1e2Lc
Just starting with Python? Wondering if programming is for you?
Master key data analysis tasks like cleaning, filtering, pivot and grouping data using Pandas, and learn how to present your insights visually with Matplotlib with ‘Data Analysis with Python’ masterclass.
Already know the basics and want something more hands-on?
Take the Python Challenge.
You'll work through a real business problem, complete a portfolio-ready project, and practise the kind of analysis employers expect from junior analysts.
👉 Start with the Masterclass if you're a complete beginner.
👉 Choose the Python Challenge if you're comfortable with the fundamentals and want to apply them to a real project.
Data Analyst & Data Scientist


