Learn how to explore data with Python's Jupyter Notebook

Try your hand at investigating California campaign cash with our free and open-source course

Last weekend, I traveled to the campus of San Diego State University to join a journalism workshop put on by Investigative Reporters and Editors.

Dozens of students and journalists gathered from across Southern California — and even as far as Mexicali, Mexico — to learn advanced online research techniques, receive Microsoft Excel instruction and develop other skills during two days of training.


One of the offerings was a new class created by our team titled “First Python Notebook: Scripting your way to the story.”

Over three hours I walked about 20 students through the fundamentals of the Python programming language by using the Jupyter Notebook programming environment to interrogate data and develop a story.

Our subject: Contributions to campaigns for and again Proposition 64, a ballot measure asking California voters to decide if recreational marijuana should be legalized.

The data: Drawn from this site’s bulk download service that repackages CAL-ACCESS, the jumbled, dirty and difficult database that tracks money in California politics.

The complete script for the class is now available online on GitHub for anyone to take at home or teach elsewhere. We’re aiming to expand and improve it for future events, so if you give it a try I’d love to hear your feedback. Email me any time at [email protected].