A fresh dataset never confesses on its own. You have 120 sensor readings from a warehouse and four problems hiding in them. Work the standard questioning sequence until all four are on the board.
EDA is a loop, not a checklist
Exploratory data analysis has a rhythm: ask a question, look at the answer, refine the question, look again. The five panels below are the standard opening questions (shape, types, missingness, distributions, duplicates, relationships), but they are not a form to fill in once. A discovery in one panel changes what every other panel shows, so you circle back. And you write each finding down the moment you see it, because a finding you did not record is a finding you will rediscover at 2 a.m. in production. The board on the right is your notebook.
How this playground stays honest: the 120-row dataset is generated once with a seeded generator (seed 941) and is identical on every visit. Four issues were planted in it deliberately. Every count, histogram, skewness, and correlation on this page is computed live from those 120 rows. Nothing is faked.
Step 1: What are you holding?
Before any chart, ask the boring questions: how many rows, how many columns, what type is each column, and how many distinct values does it take? The deployment manifest says this warehouse has exactly four zones: north, south, east, and west. Inspect each column and compare what the data says against what the manifest promises. If a categorical column has more distinct values than it should, one of them is lying.
Rows
120
Columns
6
Unique reading_id
112
| column | dtype | non-null | unique | |
|---|---|---|---|---|
| reading_id | string | 120 / 120 | 112 | |
| zone | string | 120 / 120 | 5 | |
| temp_c | number | 116 / 120 | 56 | |
| humidity_pct | number | 120 / 120 | 80 | |
| voc_ppb | number | 120 / 120 | 108 | |
| battery_v | number | 120 / 120 | 38 |
The loop discipline
Notice what happened when you flagged the sentinel: the missingness map changed, the humidity histogram snapped into shape, and every correlation involving humidity became meaningful. One upstream answer rewrote three downstream ones. That is why EDA cannot be a checklist you run top to bottom once: each finding invalidates conclusions you already drew, so you loop back and re-look. In practice the sequence is: shape and types first (cheapest, catches schema lies), then missingness (before trusting any statistic), then per-column distributions, then duplicates, then relationships. Then again, until a full pass turns up nothing new.
The same discipline applies to what you do next. The sentinel readings and the duplicated batch should be fixed at ingestion, not papered over in analysis code. The mislabeled zone needs a human decision: is "Sout" a typo of south, or a fifth zone nobody documented? And the skewed VOC column is not a defect at all, just a column that wants a log scale. Interrogation tells you which of those four conversations to have.