{ "cells": [ { "cell_type": "markdown", "id": "7d1106cf", "metadata": {}, "source": [ "# Explorative Datenanalyse des NYCFlights Datensatzes\n", "\n", "### Vorwissen:\n", "Mit einem gewissen Vorwissen in Statistik (Basics aus MA3) haben Sie mehr von der Veranstaltung. Die wichtigsten Grundlagen finden Sie zum Beispiel in:\n", "- Kopp-Schneider, Werft “Grundlagen der Statistik” in Medizinische Physik: https://link.springer.com/book/10.1007%2F978-3-662-54801-1\n", "\n", "### Literatur zum Nachschlagen während des Labors (Links auf moodle): \n", "- Bruce et al. Praktische Statistik für Data Scientists, Kapitel 1 bis Seite 31\n", "- Sauer, Moderne Datenanalyse mit R: Wir machen eine ähnliche Analyse mit Python wie in Kapitel 10 (ohne 10.2.3) mit R beschrieben\n", "- Python-Dokumentationen, z.B. VanderPlas: Data Science mit Python\n", "\n", "### Sie werden hier:\n", "- Datensatz einlesen/laden\n", "- Daten als Tabelle anschauen: typische Datenstruktur für Data Science: pandas DataFrame\n", "- Unterschiedliche Skalentypen der Daten erkennen\n", "- Kategoriale Daten visualisieren (Welche Datentypen sind kategorial?)\n", "- Metrische (kontinuierlich oder diskret mit vielen Werten) Daten visualisieren und nach Kategorien sortiert visualisieren\n", "- Zusammenhänge zwischen metrischen Daten visualisieren und interpretieren\n", "- den NYCFlights Datensatz erkunden\n", "\n", "### Lernziele:\n", "- Sie haben eine erste Idee wie eine explorative Datenanalyse funktioniert und sich schon einmal in einen Datensatz vertieft.\n", "- Sie erkennen unterschiedliche Datentypen und können Daten unterschiedlicher Datentypen geeignet visualisieren.\n", "- Sie können Visualisierungen nach verschiedenen Kategorien in Python nutzen und wissen, wann welche Visualisierung sinnvoll ist.\n", "\n", "### Output:\n", "- 1 Graph Ihrer Wahl (jede/r wird vermutlich etwas anderes finden, was sie/er interessant findet. Zu Beginn der nächsten Vorlesung werden wir alle Graphen anschauen und so unser Wissen über den Datensatz erweitern). Bitte bis nächsten Dienstag auf moodle hochladen. Bitte stellen Sie die Daten so dar, dass sie auf einer Folie erkennbar sind (Größe der Achsenbeschriftung, etc.)." ] }, { "cell_type": "code", "execution_count": 1, "id": "3548bf3f", "metadata": {}, "outputs": [], "source": [ "#Nötige Module importieren\n", "\n", "#Daten einlesen und Daten verarbeiten\n", "import pandas as pd\n", "\n", "#Plotten\n", "import matplotlib.pyplot as plt\n", "\n", "#zum (einfacheren) Erstellen guter statistischer Plots:\n", "import seaborn as sns\n", "\n", "sns.set_theme() # alle Plots (auch von matplotlib) im seaborn-Style\n", "\n", "# Numerische und statistisches Werkzeug\n", "import numpy as np\n", "from scipy import stats" ] }, { "cell_type": "markdown", "id": "6418c67c", "metadata": {}, "source": [ "## Anleitung\n", "\n", "Im Folgenden sollen Sie versuchen mit Hilfe von Visualisierungen einen (ersten) Überblick über den NYCFlights Datensatz zu bekommen. Für einfache und gute statistische Datenvisualisierungen eignet sich das Paket `seaborn`. Es basiert auf `matplotlib`. Es vereinfacht sehr viele Vorgänge und liefert überaus nützliche und hochwertige Graphen: \n", "https://seaborn.pydata.org/index.html\n", "\n", "Ändern von Darstellung und Beschriftung etc. basiert auf matplotlib. Die Dokumentation finden Sie unter: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.html\n", "\n", "In der letzten Anleitung gab es hierzu schon die ersten Graphen. Nun wollen wir uns etwas genauer mit dem Datensatz beschäftigen. Wir fokussieren uns in diesem Labor darauf, Daten abhängig von verschiedenen Kategorien zu visualisieren. Verteilungen von kontinuierlichen Daten betrachten wir in späteren Laboren." ] }, { "cell_type": "markdown", "id": "81da0a5a", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "### 1. Analyse der Datentypen und Erstellung eines Codebooks\n", "Wir nutzen den NYC Flights Datensatz gekürzt um die fehlenden Werte (siehe 0_ExplorativeDatenanalyse_Einführung). Bevor wir mit Visualisierungen starten, müssen wir die Art der Variablen kennen. Schauen Sie sich die Datentabelle an und notieren Sie kurz für jede Variable:\n", "\n", "- Bedeutung (können Sie mit dem Namen etwas anfangen? Schauen Sie ggf. in die Dokumentation!)\n", "- Datentyp und Skalenniveau\n", "- Möglicher Wertebereich, Einheit etc. \n", "- evtl. weitere Anmerkungen (z.B. Anzahl fehlender Werte)" ] }, { "cell_type": "code", "execution_count": 2, "id": "7536dd73", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/david/DATENV/lib/python3.12/site-packages/nycflights13/__init__.py:2: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n", " from pkg_resources import resource_filename as _rf\n" ] }, { "data": { "text/html": [ "
| \n", " | year | \n", "month | \n", "day | \n", "dep_time | \n", "sched_dep_time | \n", "dep_delay | \n", "arr_time | \n", "sched_arr_time | \n", "arr_delay | \n", "carrier | \n", "flight | \n", "tailnum | \n", "origin | \n", "dest | \n", "air_time | \n", "distance | \n", "hour | \n", "minute | \n", "time_hour | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "2013 | \n", "1 | \n", "1 | \n", "517.0 | \n", "515 | \n", "2.0 | \n", "830.0 | \n", "819 | \n", "11.0 | \n", "UA | \n", "1545 | \n", "N14228 | \n", "EWR | \n", "IAH | \n", "227.0 | \n", "1400 | \n", "5 | \n", "15 | \n", "2013-01-01T10:00:00Z | \n", "
| 1 | \n", "2013 | \n", "1 | \n", "1 | \n", "533.0 | \n", "529 | \n", "4.0 | \n", "850.0 | \n", "830 | \n", "20.0 | \n", "UA | \n", "1714 | \n", "N24211 | \n", "LGA | \n", "IAH | \n", "227.0 | \n", "1416 | \n", "5 | \n", "29 | \n", "2013-01-01T10:00:00Z | \n", "
| 2 | \n", "2013 | \n", "1 | \n", "1 | \n", "542.0 | \n", "540 | \n", "2.0 | \n", "923.0 | \n", "850 | \n", "33.0 | \n", "AA | \n", "1141 | \n", "N619AA | \n", "JFK | \n", "MIA | \n", "160.0 | \n", "1089 | \n", "5 | \n", "40 | \n", "2013-01-01T10:00:00Z | \n", "
| 3 | \n", "2013 | \n", "1 | \n", "1 | \n", "544.0 | \n", "545 | \n", "-1.0 | \n", "1004.0 | \n", "1022 | \n", "-18.0 | \n", "B6 | \n", "725 | \n", "N804JB | \n", "JFK | \n", "BQN | \n", "183.0 | \n", "1576 | \n", "5 | \n", "45 | \n", "2013-01-01T10:00:00Z | \n", "
| 4 | \n", "2013 | \n", "1 | \n", "1 | \n", "554.0 | \n", "600 | \n", "-6.0 | \n", "812.0 | \n", "837 | \n", "-25.0 | \n", "DL | \n", "461 | \n", "N668DN | \n", "LGA | \n", "ATL | \n", "116.0 | \n", "762 | \n", "6 | \n", "0 | \n", "2013-01-01T11:00:00Z | \n", "