https://www.youtube.com/watch?v=wp4umpHlwyq

In diesem Leitfaden werde ich Sie durch ein vollständiges Datenanalyseprojekt führen, das Python verwendet, um das Hubschraubergefängnis im Laufe der Geschichte zu untersuchen. Sie lernen, wie Sie Daten aus Wikipedia sammeln, sie reinigen, grundlegende Analysen durchführen und Ihre Ergebnisse mithilfe der grundlegenden Werkzeuge von Python visualisieren.

Das geführtes Projekt ist für Anfänger entwickelt, die Python -Grundlagen wie Hear, Schleifen und bedingte Logik lernen. Durch die Arbeit mit einem realen Datensatz zu einem ungewöhnlichen Thema sammeln Sie diese Konzepte praktisch, während Sie den Workflow der Kerndatenanalyse üben: Datenerfassung, Reinigung, Analyse und Visualisierung.

Was du lernen wirst

Am Ende dieses Projekts wissen Sie:

  • Daten in Python importieren und manipulieren
  • Reinigen und Bereiten Sie Rohdaten zur Analyse vor
  • Erstellen Sie Frequenztabellen mit verschiedenen Python -Ansätzen
  • Visualisieren Sie Daten mit einfachen Diagrammen
  • Vergleichen Sie die Effizienz verschiedener Datenstrukturen (Hear im Vergleich zu Wörterbüchern im Vergleich zu Datenrahmen).

Einrichten Ihrer Umgebung

1. Richten Sie Ihren Arbeitsbereich ein

Wir werden mit einem arbeiten .ipynb Datei, die in den folgenden Instruments wiedergegeben werden kann:

  • Jupyter Pocket book (lokale Set up erforderlich)
  • Google Colab (browserbasiert, keine Set up erforderlich)

2. Laden Sie die Ressourcendatei herunter

Wir werden a verwenden helper.py Datei, die Funktionen für die Arbeit mit Webdaten, visualisieren Sie sie und noch mehr. Stellen Sie sicher, dass Sie herunterladen Die helper.py Datei aus der Lektion, wenn Sie lokal arbeiten möchten.

Herunterladen der RessourcendateiHerunterladen der Ressourcendatei

Für dieses Projekt benötigen Sie eine Python -Umgebung mit einigen grundlegenden Bibliotheken. Wenn Sie an der DataQuest -Plattform arbeiten, ist für Sie bereits alles eingerichtet. Wenn Sie vor Ort arbeiten, benötigen Sie:

  • Python 3.x
  • Jupyter Pocket book oder JupyterLab
  • Matplotlib zur Visualisierung

Beginnen wir mit dem Importieren aller Funktionen in der helper.py Datei. In einem realen Projekt würden diese Funktionen Aufgaben erledigen, die über den Umfang unserer aktuellen Analyse hinausgehen, aber für das Projekt reibungslos verlaufen.

from helper import *

Daten erhalten

Einer der coolen Aspekte dieses Projekts ist, dass wir unsere Daten direkt aus Wikipedia ziehen. Anstatt mit einer statischen CSV -Datei zu arbeiten, werden wir eine Dwell -Wikipedia -Seite abkratzen, auf der das Hubschraubergefängnis im Laufe der Geschichte entkommt.

url = "https://en.wikipedia.org/wiki/List_of_helicopter_prison_escapes"
knowledge = data_from_url(url)

Der data_from_url Die Funktion wird für uns um das Internet -Scraping handelt, die Informationen aus der Wikipedia -Tabelle extrahiert und in ein Format umwandelt, mit dem wir arbeiten können.

Ausbilder Perception: Die Arbeit mit Dwell -Daten verleiht diesem Projekt eine interessante Dimension. Im Gegensatz zu statischen Datensätzen können sich Internet-Sourcing-Daten zwischen der Entwicklung Ihrer Analyse und der Ausführung von jemand anderem ändern. Dies ist eine häufige Herausforderung in der realen Datenwissenschaft, da Daten selten statisch sind und jederzeit aktualisiert werden können.

Schauen wir uns an, wie unsere Daten aussehen:

print(len(knowledge))  # Examine what number of entries we've got
print(sort(knowledge))  # Examine the information construction sort
50
<class 'listing'>

Unsere Daten werden als Liste mit 50 Einträgen gespeichert. Untersuchen wir nun die ersten Einträge, um die Struktur zu verstehen:

for row in knowledge(:3):
    print(row)
('August 19, 1971', 'Santa Martha Acatitla', 'Mexico', 'Sure', 'Joel David Kaplan Carlos Antonio Contreras Castro', "Joel David Kaplan was a New York businessman who had been arrested for homicide in 1962 in Mexico Metropolis and was incarcerated on the Santa Martha Acatitla jail within the Iztapalapa borough of Mexico Metropolis. Joel's sister, Judy Kaplan, organized the means for to assist Kaplan escape, and on August 19, 1971, a helicopter landed within the jail yard. The guards mistakenly thought this was an official go to. In two minutes, Kaplan and his cellmate Carlos Antonio Contreras, a Venezuelan counterfeiter, have been in a position to board the craft and have been piloted away, earlier than any pictures have been fired.(9) Each males have been flown to Texas after which totally different planes flew Kaplan to California and Castro to Guatemala.(3) The Mexican authorities by no means initiated extradition proceedings towards Kaplan.(9) The escape is informed in a guide, The ten-Second Jailbreak: The Helicopter Escape of Joel David Kaplan.(4) It additionally impressed the 1975 motion film Breakout, which starred Charles Bronson and Robert Duvall.(9)")
('October 31, 1973', 'Mountjoy Jail', 'Eire', 'Sure', "JB O'Hagan Seamus TwomeyKevin Mallon", 'On October 31, 1973 an IRA member hijacked a helicopter and compelled the pilot to land within the train yard of Dublin's Mountjoy Jail's D Wing at 3:40xa0p.m., October 31, 1973. Three members of the IRA have been in a position to escape: JB O'Hagan, Seamus Twomey and Kevin Mallon. One other prisoner who additionally was within the jail was quoted as saying, "One shamefaced screw apologised to the governor and stated he thought it was the brand new Minister for Defence (Paddy Donegan) arriving. I informed him it was our Minister of Defence leaving." The Mountjoy helicopter escape turned Republican lore and was immortalized by "The Helicopter Track", which comprises the strains "It is up like a chook and over the town. There's three males a'lacking I heard the warder say".(1)')
('Might 24, 1978', 'United States Penitentiary, Marion', 'United States', 'No', 'Garrett Brock TrapnellMartin Joseph McNallyJames Kenneth Johnson', "43-year-old Barbara Ann Oswald hijacked a Saint Louis-based constitution helicopter and compelled the pilot to land within the yard at USP Marion. Whereas touchdown the plane, the pilot, Allen Barklage, who was a Vietnam Warfare veteran, struggled with Oswald and managed to wrestle the gun away from her. Barklage then shot and killed Oswald, thwarting the escape.(10) Just a few months later Oswald's daughter hijacked TWA Flight 541 in an effort to free Trapnell.")

Jeder Eintrag enthält Informationen über einen Fluchtversuch des Hubschrauber -Gefängnisses, einschließlich des Datums, des Gefängnisnamens, des Landes, ob er erfolgreich battle, die Flucht (n) und eine detaillierte Beschreibung. Die Beschreibungen sind sehr lang und wir brauchen sie für unsere Analyse nicht. Lassen Sie uns unsere Daten, indem wir sie entfernen.

Reinigen der Daten

Die Datenreinigung ist ein wesentlicher Schritt in jeder Analyse. Für dieses Projekt werden wir zunächst die langen Beschreibungen aus unseren Daten in der letzten Spalte entfernen. Wir werden es entfernen, indem wir schneiden knowledge:

index = 0
for row in knowledge:
    knowledge(index) = row(:-1)  # Maintain every part besides the final component
    index += 1

Bestätigen wir nun, dass unsere Reinigung funktioniert hat:

print(knowledge(:3))
(('August 19, 1971', 'Santa Martha Acatitla', 'Mexico', 'Sure', 'Joel David Kaplan Carlos Antonio Contreras Castro'), ('October 31, 1973', 'Mountjoy Jail', 'Eire', 'Sure', "JB O'Hagan Seamus TwomeyKevin Mallon"), ('Might 24, 1978', 'United States Penitentiary, Marion', 'United States', 'No', 'Garrett Brock TrapnellMartin Joseph McNallyJames Kenneth Johnson'))

Viel besser! Jetzt ist jeder Eintrag besser überschaubar und enthält nur die wichtigsten Informationen, die wir benötigen.

Als nächstes müssen wir die Daten standardisieren. Derzeit sind sie in einem Format wie „19. August 1971“, aber für unsere Analyse brauchen wir nur das Jahr:

for row in knowledge:
    date = fetch_year(row(0))
    row(0) = date

Einblick in Ausbilder: Wenn Sie mit Daten in der Datenanalyse arbeiten, ist es üblich, nur die Komponenten zu extrahieren, die Sie benötigen. Hier interessieren wir uns nur für jährliche Developments, additionally extrahieren wir nur das Jahr. Wenn wir nach saisonalen Mustern suchen würden, können wir stattdessen den Monat behalten.

Lassen Sie uns unseren Fortschritt überprüfen:

print(knowledge(:3))
((1971, 'Santa Martha Acatitla', 'Mexico', 'Sure', 'Joel David Kaplan Carlos Antonio Contreras Castro'), (1973, 'Mountjoy Jail', 'Eire', 'Sure', "JB O'Hagan Seamus TwomeyKevin Mallon"), (1978, 'United States Penitentiary, Marion', 'United States', 'No', 'Garrett Brock TrapnellMartin Joseph McNallyJames Kenneth Johnson'))

Großartig! Die Daten wurden nur in die Jahre umgewandelt, was unsere Analyse erleichtert.

Analyse des Gefängnisses entkommt nach Jahr

Nachdem unsere Daten sauber sind, analysieren wir, welche Jahre die meisten Fluchtversuche des Hubschraubers hatten.

Lassen Sie uns zunächst die Bereiche der Jahre in unserem Datensatz finden:

min_year = min(knowledge, key=lambda x: x(0))(0)
max_year = max(knowledge, key=lambda x: x(0))(0)
print(min_year)
print(max_year)
1971
2020

Lassen Sie uns nun eine Liste aller Jahre vom Minimal bis zum Most erstellen. Dadurch wird sichergestellt, dass wir Jahre berücksichtigen, in denen keine Flucht aufgetreten sind:

years = ()
for yr in vary(min_year, max_year + 1):
    years.append(yr)

Als nächstes erstellen wir eine Frequenztabelle, um Fluchtversuche professional Jahr zu zählen:

attempts_per_year = ()
for yr in years:
    attempts_per_year.append((yr, 0))

Jetzt werden wir unsere Daten durchlaufen und die Anzahl für jedes Jahr erhöhen:

for row in knowledge:
    for year_attempt in attempts_per_year:
        yr = year_attempt(0)
        if row(0) == yr:
            year_attempt(1) += 1
((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))

Lassen Sie uns unsere Ergebnisse mit einem einfachen Balkendiagramm visualisieren:

%matplotlib inline
barplot(attempts_per_year)

Analyse des Gefängnisses entkommt nach JahrAnalyse des Gefängnisses entkommt nach Jahr

Ausbilderer Perception: Aus dieser Visualisierung können wir sehen, dass die Flucht im Hubschrauber in einem bestimmten Jahr nicht besonders häufig ist. Die meisten Jahre hatten 0-1 Versuche. Es gibt jedoch interessante Spikes Mitte der 1980er, frühen 2000er und um 2007-2009, wo im selben Jahr mehrere Versuche stattfanden. Dies könnte auf Nachahmerversuche zurückzuführen sein, die von erfolgreichen Flüchtlingen inspiriert sind, oder möglicherweise Änderungen der Sicherheitsmaßnahmen im Laufe der Zeit im Gefängnis.

Analyse von Flucht nach Land

Schauen wir uns nun an, welche Länder die meisten Hubschraubergefängnisse entkommen.

Zunächst müssen wir eine Liste aller Länder in unserem Datensatz erhalten:

international locations = ()
for row in knowledge:
    nation = row(2)
    if nation not in international locations:
        international locations.append(nation)

Zählen wir nun die Häufigkeit der Flucht in jedem Land mit unseren grundlegenden Python -Fähigkeiten:

countries_frequency = ()
for nation in international locations:
    countries_frequency.append((nation, 0))

for country_attempt in countries_frequency:
    nation = country_attempt(0)
    for row in knowledge:
        if row(2) == nation:
            country_attempt(1) += 1

Dieser Ansatz funktioniert, ist aber nicht die effizienteste. In der realen Datenanalyse haben wir häufig mehrere Möglichkeiten, um dasselbe Downside zu lösen. Vergleichen wir einige different Ansätze:

Verwenden von Wörterbüchern (effizienter)

international locations = {}
for row in knowledge:
    nation = row(2)
    if nation not in international locations:
        international locations(nation) = 1
    else:
        international locations(nation) += 1

Erkenntnisse der Ausbilder: Wörterbücher sind häufig effizienter als Hear für Aufgaben wie Zählfrequenzen, da sie Hash -Tabellen verwenden, was die O (1) -Scoup -Zeit im Vergleich zu O (n) für Hear ermöglicht. Dieser Leistungsunterschied wird bei größeren Datensätzen signifikanter. Während eines technischen Interviews habe ich einst in Panik geraten, weil ich mich nicht an die Pandas -Methode für die Häufigkeitsanzeige erinnern konnte, aber zu wissen, wie man es mit Fundamental Python macht, wäre ausreichend gewesen!

Verwenden von Pandas (am effizientesten)

Für diejenigen, die mit Pandas vertraut sind, können wir diese Aufgabe mit dieser Pandas DataFrame -Methode noch effizienter erfüllen (Methodevalue_counts()) Ich hatte Mühe, mich zu erinnern:

import pandas as pd

df = pd.DataFrame(knowledge, columns=("Date", "Jail title", "Nation", "Succeeded", "Escapee"))
countries_frequency = df("Nation").value_counts()
print_pretty_table(countries_frequency)
Land Anzahl der Vorkommen
Frankreich 15
Vereinigte Staaten 8
Kanada 4
Belgien 4
Griechenland 4
Vereinigtes Königreich 2
Australien 2
Brasilien 2
Niederlande 1
Italien 1
Mexiko 1
Chile 1
Russland 1
Irland 1
Puerto Rico 1

Aus unserer Analyse können wir erkennen, dass Frankreich die höchste Anzahl von Hubschraubergefängnissen mit 15 Versuchen hat, gefolgt von den Vereinigten Staaten mit 8.

Rezension

In diesem Projekt haben wir mit grundlegenden Python -Fähigkeiten den Hubschraubergefängnisflächen analysiert. Wir haben gelernt, wie man:

  1. Daten aus einer Webquelle importieren
  2. Reinigen und Prozessdaten zur Analyse
  3. Erstellen Sie Frequenztabellen mit verschiedenen Python -Ansätzen
  4. Visualisieren Sie unsere Ergebnisse

Wir stellten fest, dass in bestimmten Jahren (1986, 2001, 2007 und 2009) den Fluchthubschrauber entkommen und in Frankreich und den Vereinigten Staaten am häufigsten sind.

Nächste Schritte

Wenn Sie dieses Projekt erweitern möchten, finden Sie hier einige Ideen:

  1. Analysieren Sie die Erfolgsrate von Hubschrauberentleitungen nach Land oder Jahrzehnt
  2. Untersuchen Sie, ob mehrere Flüchtlinge die Erfolgsraten beeinflussen
  3. Suchen Sie nach Mustern in wiederholten Flüchtlingen
  4. Erforschen Sie Korrelationen zwischen Sicherheitsniveaus des Gefängnisses und Fluchtversuche

Wenn Sie bereit sind, Ihre Python -Fähigkeiten auf die nächste Stufe zu bringen, lesen Sie die DataQuest’s Python -Grundlagen für die Datenanalyse Skillweg oder unseres Datenanalyst in Python Karriereweg.

Denken Sie daran, der Schlüssel zur Beherrschung der Datenanalyse ist die Praxis. Versuchen Sie, diese Techniken auf Datensätze anzuwenden, die Sie interessieren!

Joyful Coding!

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert