Before You Build a Model: A First Exploratory Data Analysis, Step by Step
You Got the CSV. Now What?
Someone hands you a customer file and asks why churn ticked up last quarter. There's no model to build yet, no target variable defined, not even agreement on what counts as "churned" in this particular dataset. This is where most data science work actually starts, and it's the part almost no bootcamp curriculum spends enough time on: opening a file you've never seen and figuring out what you can honestly claim about it.
Look at the Shape Before You Look for Answers
The first real step isn't statistical, it's almost clerical. How many rows, how many columns, what type is each column supposed to be versus what it actually contains. A "signup_date" column that loads as a string instead of a date, a "revenue" field with a stray currency symbol turning numbers into text, an age column with a maximum value of 214 — these show up in nearly every real dataset, not just the polished ones used in tutorials.
- 1
Structure
Row and column counts, dtypes, and which columns don't match what they're supposed to hold
- 2
Missingness
Where values are absent, and whether that's random or means something (a null "cancel_date" often means "still active")
- 3
Distributions
Histograms and value counts per column, to catch skew, outliers, and impossible values before they reach a model
- 4
Relationships
Correlations and cross-tabs between the columns and whatever outcome you actually care about
Skipping straight to relationships, step four, before doing the first three, is how a data scientist ends up presenting a correlation caused by a data-entry bug to the exact stakeholder who's about to make a budget decision on it.
The Job Is Less "Model Building" Than the Postings Suggest
45%
Data loading and cleaning combined
21%
Data visualization
~12%
Model training alone — selection and deployment each take a similarly sized slice
That middle number surprises most career-changers. Machine learning gets the job title and the recruiting pitch. Cleaning and visualizing data is where most of the actual week goes, and for good reason: a model trained on data nobody looked at closely tends to fail in ways that are expensive to trace back later. Gartner's often-cited estimate puts the average cost of poor data quality at $12.9 million a year for a typical organization. That figure is from 2020, and data teams still quote it because nothing since has meaningfully knocked it down.
Two Missing Values Aren't the Same Kind of Missing
Take that null "cancel_date" from earlier. If it's null because the customer is still active, filling it with today's date or dropping the row both quietly corrupt the churn analysis you're trying to run. If it's null because a data sync failed, the fix is completely different: probably a join somewhere upstream that's silently dropping rows. The dtype-and-missingness pass exists specifically to force that distinction before anyone reaches for a fill-in-the-blanks function on autopilot.
A Notebook Isn't a Deliverable
Once a pattern is actually found, it has to reach someone who wasn't in the notebook with you, and a wall of dataframe output doesn't do that job.
Jupyter notebook
Fast iteration, messy by design, built for you to interrogate the data
Tableau or Power BI dashboard
Slower to build, curated on purpose, built for someone else to trust an answer
This is the part of a data science curriculum that surprises people who came in expecting pure statistics. A solid EDA finding can still die in a meeting if the chart behind it is a default scatter plot nobody in the room can read in ten seconds. Which visualization earns its place depends on the audience, not on which chart type happens to be most technically precise.
Simpson's Paradox Is Why Step One Matters
Here's a concrete trap worth building into a first project on purpose. Aggregate churn goes down overall, but it goes up in every individual region once you break the data apart. Both statements can be true at the same time, if the mix of customers across regions shifted between periods, and reporting only the aggregate number would tell a stakeholder close to the opposite of what's actually happening on the ground. Catching this means slicing the same number a few different ways before trusting it, which is exactly the discipline the structure-missingness-distributions-relationships sequence above is built to enforce.
Where to Start
Pick a dataset you don't already know the answer for. A rented-apartment listing dump, a public transit ridership file, anything with a genuine question attached to it works. Run the four-step pass on it. Then write the finding as if a stakeholder has to act on it tomorrow, not as a notebook cell that only makes sense to you.
SkyTrainings' Data Science, AI & ML program covers this exact sequence on real industry datasets, from statistics and wrangling through the Tableau and Power BI dashboards that make a finding usable by someone who wasn't in the room for it.