Começamos importando algumas funções auxiliares.
from helper import*
Agora vamos pegar os dados do List of helicopter prison escapes Artigo da Wikipédia.
url = 'https://en.wikipedia.org/wiki/List_of_helicopter_prison_escapes'
data = data_from_url(url)
Vamos imprimir as três primeiras linhas
for row in data:
print(row[:3])
['August 19, 1971', 'Santa Martha Acatitla', 'Mexico'] ['October 31, 1973', 'Mountjoy Jail', 'Ireland'] ['May 24, 1978', 'United States Penitentiary, Marion', 'United States'] ['February 27, 1981', 'Fleury-Mérogis, Essonne, Ile de France', 'France'] ['May 7, 1981', 'Orsainville Prison, Quebec City', 'Canada'] ['January, 1983', 'Pentridge (HM Prison)', 'Australia'] ['December 19, 1985', 'Perry Correctional Institution, Pelzer, South Carolina', 'United States'] ['December 31, 1985', 'Cândido Mendes penitentiary, Ilha Grande, Rio de Janeiro', 'Brazil'] ['May 26, 1986', 'Prison de la Santé', 'France'] ['November 5, 1986', 'Federal Correctional Institution, Dublin', 'United States'] ['November 23, 1986', 'Prigione di Rebibbia, Roma', 'Italy'] ['December 10, 1987', 'Gartree (HM Prison)', 'United Kingdom'] ['July 11, 1988', 'Santa Fe prison', 'United States'] ['April 17, 1989', 'Federal Holding Facility, Miami, FL', 'United States'] ['August 19, 1989', 'Arkansas Valley Correctional Facility', 'United States'] ['June 19, 1990', 'Kent Penitentiary, British Columbia', 'Canada'] ['1991', 'Rio Piedras State Penitentiary, Puerto Rico', 'Puerto Rico'] ['1992', 'Lyon Prison', 'France'] ['December 1992', 'Touraine Central Prison, Tours', 'France'] ['June 17, 1993', 'Touraine Central Prison, Tours', 'France'] ['December 30, 1996', 'High Security Prison, Santiago', 'Chile'] ['September 18, 1997', 'De Geerhorst jail', 'Netherlands'] ['March 25, 1999', 'Metropolitan Remand and Reception Centre', 'Australia'] ['June 5, 2000', 'Martin Treatment Center for Sexually Violent Predators, Martin County Florida', 'United States'] ['2000', 'Lyon prison', 'France'] ['2001', 'Luynes prison', 'France'] ['March 24, 2001', 'Draguignan prison', 'France'] ['May 28, 2001', 'Fresnes prison', 'France'] ['January 17, 2002', 'Parada Neto Penitentiary', 'Brazil'] ['December 30, 2002', 'Las Cucharas prison, Puerto Rico', 'United States'] ['2003', 'Luynes prison', 'France'] ['July 2005', 'France', 'France'] ['December 10, 2005', 'Aiton Prison', 'France'] ['June 6, 2006', 'Korydallos Prison', 'Greece'] ['April 15, 2007', 'Lantin Prison, Liège', 'Belgium'] ['July 15, 2007', 'Grasse prison', 'France'] ['October 28, 2007', 'Ittre prison', 'Belgium'] ['February 22, 2009', 'Korydallos Prison', 'Greece'] ['April 27, 2009', 'Domenjod Prison, Réunion', 'France'] ['July 23, 2009', 'Bruges', 'Belgium'] ['June 25, 2010', 'HM Prison Isle of Wight, Isle of Wight', 'United Kingdom'] ['March 22, 2012', 'Sheksna, Penal colony N17', 'Russia'] ['February 24, 2013', 'Trikala Prison, Trikala', 'Greece'] ['March 17, 2013', 'Saint-Jérôme Detention Facility, Quebec', 'Canada'] ['June 7, 2014', 'Orsainville Detention Facility, Quebec', 'Canada'] ['February 22, 2016', 'Thiva', 'Greece'] ['July 1, 2018', 'Réau, near Paris', 'France'] ['September 25, 2020', 'Forest prison, Brussels', 'Belgium']
Removendo a coluna 'Detalhes' do dataset
index = 0
for row in data:
data[index] = row[:-1]
index += 1
print(data[:3])
[['August 19, 1971', 'Santa Martha Acatitla', 'Mexico', 'Yes', 'Joel David Kaplan Carlos Antonio Contreras Castro'], ['October 31, 1973', 'Mountjoy Jail', 'Ireland', 'Yes', "JB O'Hagan Seamus TwomeyKevin Mallon"], ['May 24, 1978', 'United States Penitentiary, Marion', 'United States', 'No', 'Garrett Brock TrapnellMartin Joseph McNallyJames Kenneth Johnson']]
Modificando a coluna data para mostrar apenas o ano
for row in data:
row[0] = fetch_year(row[0])
print(data[:3])
[[1971, 'Santa Martha Acatitla', 'Mexico', 'Yes', 'Joel David Kaplan Carlos Antonio Contreras Castro'], [1973, 'Mountjoy Jail', 'Ireland', 'Yes', "JB O'Hagan Seamus TwomeyKevin Mallon"], [1978, 'United States Penitentiary, Marion', 'United States', 'No', 'Garrett Brock TrapnellMartin Joseph McNallyJames Kenneth Johnson']]
Obtendo o número de tentativas de fugas de helicoptero por ano
min_year = min(data, key=lambda x: x[0])[0]
max_year = max(data, key=lambda x: x[0])[0]
years = []
for y in range(min_year, max_year + 1):
years.append(y)
attempts_per_year = []
for year in years:
attempts_per_year.append([year,0])
print(attempts_per_year)
[[1971, 0], [1972, 0], [1973, 0], [1974, 0], [1975, 0], [1976, 0], [1977, 0], [1978, 0], [1979, 0], [1980, 0], [1981, 0], [1982, 0], [1983, 0], [1984, 0], [1985, 0], [1986, 0], [1987, 0], [1988, 0], [1989, 0], [1990, 0], [1991, 0], [1992, 0], [1993, 0], [1994, 0], [1995, 0], [1996, 0], [1997, 0], [1998, 0], [1999, 0], [2000, 0], [2001, 0], [2002, 0], [2003, 0], [2004, 0], [2005, 0], [2006, 0], [2007, 0], [2008, 0], [2009, 0], [2010, 0], [2011, 0], [2012, 0], [2013, 0], [2014, 0], [2015, 0], [2016, 0], [2017, 0], [2018, 0], [2019, 0], [2020, 0]]
# Instruction 1 - for each row in data
for row in data:
for ya in attempts_per_year: # Instruction 2 - nothing to do here
# Instruction 3 - assign the year value in ya to y
y = ya[0]
if row[0] == y:
ya[1] += 1
# Instruction 4 - print the results
print(attempts_per_year)
[[1971, 1], [1972, 0], [1973, 1], [1974, 0], [1975, 0], [1976, 0], [1977, 0], [1978, 1], [1979, 0], [1980, 0], [1981, 2], [1982, 0], [1983, 1], [1984, 0], [1985, 2], [1986, 3], [1987, 1], [1988, 1], [1989, 2], [1990, 1], [1991, 1], [1992, 2], [1993, 1], [1994, 0], [1995, 0], [1996, 1], [1997, 1], [1998, 0], [1999, 1], [2000, 2], [2001, 3], [2002, 2], [2003, 1], [2004, 0], [2005, 2], [2006, 1], [2007, 3], [2008, 0], [2009, 3], [2010, 1], [2011, 0], [2012, 1], [2013, 2], [2014, 1], [2015, 0], [2016, 1], [2017, 0], [2018, 1], [2019, 0], [2020, 1]]
Deixando a visualização dos dados mais amigavel
%matplotlib inline
barplot(attempts_per_year)
Repondendo a pergu
Nos anos de 1986, 2001, 2007 e 2009 ocorreram mais fuga da prisão com um helicóptero.
countries_frequency = df["Country"].value_counts()
print_pretty_table(countries_frequency)
Country | Number of Occurrences |
---|---|
France | 15 |
United States | 8 |
Greece | 4 |
Belgium | 4 |
Canada | 4 |
United Kingdom | 2 |
Brazil | 2 |
Australia | 2 |
Ireland | 1 |
Netherlands | 1 |
Mexico | 1 |
Puerto Rico | 1 |
Chile | 1 |
Italy | 1 |
Russia | 1 |