Skip to content
3 min read · Tags: web-scraping pivot-table grouping regular-expressions cleaning

BW #123: Missiles

Get better at: Web scraping, pivot tables, grouping, cleaning data, and using regular expressions

BW #123: Missiles
I couldn't think of a cute panda picture for this week — so instead, here's a photo of the workspace I set up in our safe room, in case the siren goes off while I'm teaching a Python course. I haven't had to use this emergency setup so far, which is obviously good.

It has been quite a week in Israel. We've been up at all hours, awakened by air-raid sirens warning us of incoming Iranian missiles (https://www.timesofisrael.com/iran-fires-pair-of-overnight-missile-barrages-at-israel-khamenei-the-battle-begins/). These missiles have killed dozens of civilians and caused massive damage to dozens of homes. And we know that these numbers would have been much higher had it not been for such technologies as Iron Dome. Just while researching and writing this issue of Bamboo Weekly, I was interrupted by two such missile alerts.

Iran's missile attacks, of course, come while Israel is bombing a wide variety of military and nuclear facilities. The stated goal is to stop Iran from being able to achieve its goal of getting a nuclear bomb, and (eventually) destroying Israel. Iran has long funded a number of terrorist groups, including Hezbollah in Lebanon and the Houthis in Yemen.

I've received many notes from subscribers asking how I am doing. The answer is that I'm mostly exhausted, but also fortunate. My home, like all Israeli homes built in the last 30 years, has a "safe room" with thick, reinforced walls and a heavy metal door that we enter when we hear the air-raid sirens. We are safe in there, but it's less-than-comfortable to hear booms outside, to know that people have been injured and killed, and to see photos showing the devastation caused by 1,000 kg of explosive – either when it lands as intended, or when it is intercepted, resulting in multiple, large pieces of flaming metal landing at high speed. And being awakened multiple times each night, and generally being on edge about when my phone will next alert me about an incoming missile, isn't fun.

I'm also nervous about where this is all going, and how (when) we're going to de-escalate.

The New York Times columnist Thomas Friedman had a good piece about what this all means: https://www.nytimes.com/2025/06/13/opinion/israel-iran-strikes.html?unlocked_article_code=1.P08.njnv.x_MSbRRv-s33&smid=url-share

So missiles have been on my mind, and I decided that they would be an appropriate topic for this week's data analysis.

Data and five questions

This week's data comes from the Arms Control Association (https://www.armscontrol.org/), which describes itself as a nonpartisan organization dedicated to providing information and commentary on arms-control issues. (If you're interested, they have a page dedicated to Iran's nuclear program at https://www.armscontrol.org/factsheets/status-irans-nuclear-program-1 .)

This week, I have five questions for you.

There is no downloadable data file for paid subscribers, because downloading and importing it is part of the exercise this week. (And I'll admit that it's a bit tricky!)

I'll be back tomorrow with my complete solutions and explanations, as well as a downloadable Jupyter notebook.

Here are my five tasks and questions: