Chronicles of Denver's Shadows
One Wizard. 467,928 Crimes. A Truly Alarming Amount of Coffee.
Download the Grimoire"In the data, patterns emerge like constellations—except these constellations steal cars."
467,928 incidents analyzed • 19 dimensions explored • 0 crimes committed in the making of this notebook
The Quest Begins
Having lived in Denver until recently, I did what any reasonable person does after moving away: downloaded the city's entire public crime dataset and refused to sleep until it made sense. Armed with Python and the confidence of a wizard who has not yet seen the data quality, I waded into nearly half a million incidents spanning years of urban life.
The mission was genuinely serious: organize this chaotic sea of records so Denver's law enforcement could allocate resources more efficiently. To predict where the shadows fall next, you first have to map where they have been. The shadows, for the record, did not cooperate.
This is the chronicle of that journey—a tale of data cleaning, pattern discovery, and the truths that surface when you stare at a CSV long enough for it to stare back.
Chapter I: The Purification Ritual
Before any wizard divines the future, the dishes must be done. The raw data arrived like an ancient scroll—467,928 entries across 19 columns—and, like most ancient scrolls, it was a mess. Each offense carried an ID built from incident numbers, offense codes, and extensions. Some bore precise timestamps; others spoke only in vague ranges, like witnesses who would rather not get involved.
Anomalies lurked within: 41 entries where the crime ended before it began—actual time travel, per the spreadsheet—which had to be banished. Coordinates vanished for privacy; certain dates simply refused to align, on principle. Each error was cataloged, corrected, or excised with surgical precision and only moderate muttering.
Purification complete, I filtered out traffic incidents to focus on true crimes. What remained was a pristine dataset—clean, obedient, and ready to confess everything.
The Grimoire's Contents
467,928 criminal offenses (all someone else’s)
19 columns, each with opinions
Districts, precincts, neighborhoods mapped
Multiple years of temporal patterns
Jupyter Notebook (.ipynb)
Chapter II: Revelations in the Data
The Rising Tide
Auto-theft and theft-from-motor-vehicles rose steadily over three years—the data all but tugs your sleeve about it. Translation: Denver, lock your cars; the trend line is not on your side.
Temporal Prophecies
Seasonal patterns tick along like clockwork: certain months reliably run hotter than others. Crime, it turns out, keeps a calendar—which means patrol resources can keep one too.
Geographic Shadows
Districts and precincts each have a signature. Mapping concentrations across neighborhoods shows exactly where presence matters most—no crystal ball required, just Folium and patience.
Category Convergence
Public disorder declined while property crimes surged—two lines crossing like ships in the night, one of them carrying your catalytic converter. Category by category, the full landscape comes into focus.
Chapter III: The Wizard's Toolkit
A snake that eats spreadsheets
Bear-themed, bamboo-free wrangling
Charts on command
Statistics, but make it fashion
Maps with receipts
The math under the hood
The Chronicle Awaits
Download the complete Jupyter notebook and walk the whole path yourself. Every visualization, every insight, every line of code—plus my comments, which grow steadily more unhinged around cell 40.
Claim Your Copy"In data we trust. The shadows were extremely bad at hiding."