Skip to content

Demo 3 · Code

Kill a recurring data chore

In 10 minutesTwelve monthly data exports — where the format changed mid-year — merged into one clean master file. Plus the part that matters: a script that does next month for free.

First time in Code? It asks you to install Git for Windows once — click the "Download Git" button, run the installer accepting every default, then restart Claude. No Code tab at all? See the checks on the start page. And the bottom-left should say University of Chicago Enterprise — yes, at TTIC; if not, do Sign in once first.

The data is real: trips from Divvy, Chicago's bike-share, split here into twelve monthly files. In January 2020 Divvy changed its data format — different column names, different categories. If you've ever merged a year of experiment logs after someone renamed the columns mid-project, you already know this file set — it's the chore that quietly eats an afternoon.

Download the 12 monthly files (ZIP, 1.2 MB)

Steps

  1. Download the ZIP, then right-click → Extract All… → Extract — accept the suggested location. You'll get a monthly-csvs folder with 12 CSVs.
  2. In Claude Desktop, switch to the Code tab and start a new session. When it asks which folder to work in, choose Downloads → monthly-csvs.
  3. Paste this and hit Enter:

    This folder has 12 monthly bike-share exports, but the export format changed
    partway through the year (different column names and categories). Merge them
    into one clean master.csv: standardize the columns and dates, map the old
    format onto the new one, remove exact duplicate rows, and add a source_month
    column. Use the new format's column names for the master — drop columns only
    the old format has (like tripduration and gender), leave new-only ones blank
    for the older rows — and keep every row even when a station name is blank.
    Save the cleaning logic as a script called merge_months.py that I can rerun
    when next month's file arrives. Then show me: rows per month, and the top 5
    busiest start stations overall (some months have rides with no station name —
    keep those rows in master.csv but skip them in the station ranking).
    

    Claude Code reads the actual files, pinpoints exactly where the format flips, works out how the old columns map onto the new ones, and runs the merge — all in front of you. Along the way it will ask permission before reading the folder or running a step; approving is the normal flow — you're watching it work, not breaking anything.

    Claude Code working through the merge

    Code explores the files first, then asks permission before each step — approving is the normal flow.

  4. When it finishes, open the monthly-csvs folder in File Explorer. Double-click master.csv — it opens in Excel: about 30,000 rows, one consistent set of columns, source_month on every row. Next to it is merge_months.py — the script is the real artifact. Keep the folder open; you'll need it in a second.

    The merge result and summary

    Success looks like this: rows per month, the top stations — and a plain-English log of every cleaning decision.

Your exact wording will differ from the screenshot — that's normal. Success looks like: a master.csv of about 30,000 rows, a merge_months.py script in the folder, and a count for all 12 months.

Don't take the first answer — push back

Read the summary it printed. The monthly counts should rise and fall like real ridership — a Chicago winter trough, a summer peak, a sharp dip in spring 2020. If a number looks wrong, say so:

April 2020 looks way too low next to the other months. Is that real, or did
the merge drop rows? Show me the row count straight from the April file.

It'll check the source and either confirm the dip is real (it is — the city shut down) or find its own bug. Trusting a number because you checked it is the sanity check you'd run on any pipeline — and the difference between using AI and being used by it.

The kicker

"Next month" just arrived:

Download October's file (CSV)

It lands in your Downloads folder like everything else. Drag divvy-2020-10.csv into your monthly-csvs folder — the one with the other 12 — so it sits next to them. Then tell Claude Code:

October's file just arrived (divvy-2020-10.csv). Rerun merge_months.py to
include it and give me the updated monthly counts.

Seconds. That's the difference between doing the chore and owning the recipe. From now on, next month is just this one line to Claude — or run merge_months.py yourself from any Python environment; the thinking is done, and the recipe is yours to version-control.

Yes, this is allowed — it's the University of Chicago enterprise workspace. For regulated data, check UChicago's AI guidance first.

Your turn

What do you rebuild by hand every month — experiment logs, benchmark sweeps, survey exports, instrument dumps, grant budget roll-ups? That's your first real project. Point Code at last month's files and ask it to build the merge and the script.

That's your first Automate — and where researchers go deepest. Two guides worth your time:


Trip data: Divvy system data, City of Chicago's bike share — provided under the Divvy Data License Agreement and included here as sampled demo material for this tutorial (~10% per month, proportional to actual ridership).