There's lots of news this week from the United Nations. That's partly because the 80th annual General Assembly (UNGA) is kicking off, and partly because many national leaders come to the UNGA to make big speeches, or at least speeches that they hope will be perceived as big. The New York Times has summarized the most recent UNGA news at https://www.nytimes.com/live/2025/09/24/world/un-general-assembly-ukraine?unlocked_article_code=1.oU8.RH_g.XK6CXzTtCBbV&smid=url-share . I can't say that I'm always a big fan of what the UN does or how it does things. But there's no doubt that the UN does influence the world, and that it's fairly impressive that the institution has lasted so long.
While many decisions at the UN are made by the entire General Assembly, the biggest and most important votes are made by the 15-member Security Council, with five permanent members (China, France, Russia, the United Kingdom, and the United States) and 10 rotating ones. Each of the permanent members also has a veto, meaning that for any Security Council resolution to pass, none of the permanent members can vote "no."
As the news continues to report on speeches, decisions, and diplomacy at the UNGA, I thought it would be interesting to look at various votes that have taken place over the history of the Security Council, examining votes, dates, topics, and even which countries vote most similarly to one another.
Data and five questions
This week's data comes from the UN's Security Council voting data page, at https://digitallibrary.un.org/record/4055387 . As of today, this data set includes all votes on all resolutions in the Security Council's history through July 2025. A Markdown file with a data dictionary, describing the columns and the possible values, can be downloaded from the same page.
This week's learning goals include working with dates and times, working with text, grouping, pivot tables, and plotting.
Paid subscribers, including members of my LernerPython+data subscription program, can download the file directly from a link at the bottom of this message. Paid subscribers also participate in monthly office hours, can download my notebook files in the Thursday solution messages, and also get a one-click link letting them explore the data without having to install or download anything.
Here are my five tasks and questions for this week:
- Read the UN vote data into a Pandas data frame. Make sure that the
date
column is treated as adatetime
value. Create a bar plot indicating how many UN Security Council resolutions were brought to a vote in each year. Is there some point in time that indicates a big change in the number of resolutions per year? - Look at the five permanent Security Council members. Which are most highly correlated in their voting patterns? With which countries' votes does the US most highly correlate?