Skip to content

The Nobel Prize has been among the most prestigious international awards since 1901. Each year, awards are bestowed in chemistry, literature, physics, physiology or medicine, economics, and peace. In addition to the honor, prestige, and substantial prize money, the recipient also gets a gold medal with an image of Alfred Nobel (1833 - 1896), who established the prize.

The Nobel Foundation has made a dataset available of all prize winners from the outset of the awards from 1901 to 2023. The dataset used in this project is from the Nobel Prize API and is available in the nobel.csv file in the data folder.

In this project, you'll get a chance to explore and answer several questions related to this prizewinning data. And we encourage you then to explore further questions that you're interested in!

# Loading in required libraries
import pandas as pd
import seaborn as sns
import numpy as np

# Start coding here!
# Cargar el dataframe
df = pd.read_csv('data/nobel.csv')

# Mostrar las primeras filas del dataframe
df.head()
# Encuentra el género más comúnmente premiado
top_gender = df['sex'].mode()[0]

# Encuentra el país de nacimiento más comúnmente premiado
top_country = df['birth_country'].mode()[0]

print(f"El género más comúnmente premiado es: {top_gender}")
print(f"El país de nacimiento más comúnmente premiado es: {top_country}")
# Convertir el año de nacimiento en una década
df['decade'] = (df['year'] // 10) * 10

# Filtrar los datos para los ganadores nacidos en EE.UU.
usa_winners = df[df['birth_country'] == 'United States of America']

# Contar el número de ganadores por década
total_winners_per_decade = df['decade'].value_counts().sort_index()
usa_winners_per_decade = usa_winners['decade'].value_counts().sort_index()

# Calcular la proporción de ganadores nacidos en EE.UU. por década
proportion_usa_winners_per_decade = (usa_winners_per_decade / total_winners_per_decade)

# Encontrar la década con la mayor proporción
max_decade_usa = proportion_usa_winners_per_decade.idxmax()

print(f"La década con la mayor proporción de ganadores del Premio Nobel nacidos en EE.UU. es: {max_decade_usa}")
# Filtrar los datos para ganadoras del Premio Nobel
female_winners = df[df['sex'] == 'Female']

# Contar el número de ganadoras por década y categoría
female_winners_per_decade_category = female_winners.groupby(['decade', 'category']).size()
total_winners_per_decade_category = df.groupby(['decade', 'category']).size()

# Calcular la proporción de mujeres ganadoras por década y categoría
proportion_female_winners_per_decade_category = (female_winners_per_decade_category / total_winners_per_decade_category)

# Encontrar la combinación de década y categoría con la mayor proporción
max_female_decade_category = proportion_female_winners_per_decade_category.idxmax()
max_female_dict = {max_female_decade_category[0]: max_female_decade_category[1]}

print(f"La combinación de década y categoría del Premio Nobel con la mayor proporción de mujeres laureadas es: {max_female_dict}")
# Filtrar los datos para encontrar a la primera mujer en recibir un Premio Nobel
first_woman = df[df['sex'] == 'Female'].sort_values('year').iloc[0]

first_woman_name = first_woman['full_name']
first_woman_category = first_woman['category']

print(f"La primera mujer en recibir un Premio Nobel fue: {first_woman_name}")
print(f"En la categoría de: {first_woman_category}")
# Contar el número de premios ganados por cada laureado
laureate_counts = df['full_name'].value_counts()

# Filtrar los laureados que han ganado más de una vez
repeat_winners = laureate_counts[laureate_counts > 1].index.tolist()

repeat_list = repeat_winners

print("Individuos u organizaciones que han ganado más de un Premio Nobel:")
print(repeat_list)

Most Commonly Awarded Gender: Male

Most Commonly Awarded Birth Country: United States of America

Decade with the Highest Proportion of US-born Nobel Prize Winners: 2000

Decade and Nobel Prize Category with the Highest Proportion of Female Laureates: 2020 - Literature

First Woman to Receive a Nobel Prize: Marie Curie, née Sklodowska (Category: Physics)

Individuals or Organizations That Have Won More Than One Nobel Prize:

Comité international de la Croix Rouge (International Committee of the Red Cross)

Linus Carl Pauling

John Bardeen

Frederick Sanger

Marie Curie, née Sklodowska

Office of the United Nations High Commissioner for Refugees (UNHCR)