commit 42121be2c5b9f7ad86a420f51837619a0399efd3 Author: Christoph Giess Date: Mon Oct 10 11:13:41 2022 +0200 Schlüsselqulifikation Data Science mit Python diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..73003a7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,50 @@ +# --> Temporary files +privat +temp +*.swp +*~ + +# ---> Latex +*.aux +*.log +*.nav +*.out +*.snm +*.toc +*.vrb +*.synctex.gz + +# ---> Mercurial +.hg/ +.hgignore +.hgsigs +.hgsub +.hgsubstate +.hgtags + +# ---> Dart +# Don’t commit the following directories created by pub. +.buildlog +.pub/ +.dart_tool/ +build/ +packages +.packages + +# Or the files created by dart2js. +*.dart.js +*.js_ +*.js.deps +*.js.map + +# Include when developing application packages. +pubspec.lock + +# Mac file +.DS_Store + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ diff --git a/README.adoc b/README.adoc new file mode 100644 index 0000000..7fbc9b8 --- /dev/null +++ b/README.adoc @@ -0,0 +1,37 @@ += Digital Basics: Data Science mit Python + +== Ziele +Wir werden gemeinsam, +* lernen, wie man Daten automatisiert auswerten kann +* statistischen Verfahren dafür kennen lernen +* Visualisierungen zum besseren Verständnis von Daten nutzen +* die Programmiersprache Python und deren Bibliotheken besser kennen lernen + +== Zielgruppe + +Das Seminar richtet sich an +* alle, die an „Digital Basics: Einführung in die Programmierung mit Python“ teilgenommen haben +* sowie Personen, die ein bisschen Python programmieren können +und die lernen möchten, wie man mit Hilfe von Python Daten auswerten kann. + +== Inhalte + +* Daten aus Dateien einlesen +* Grundlegende statistische Funktionen +* Verwenden von externen Bibliotheken zur Datenanalyse +* Visualisierung von Daten + +== Methoden + +* Vortrag +* Übungen +* individuelles Feedback / Support +* Vorstellung der Ergebnisse in der Gruppe +* Diskussion + + +*Seminardauer:* 5 UE + +*Teilnehmerzahl:* 6-20 + +*Referent:* Christoph Giess, MARS diff --git a/jupyter_book/01_wiederholung.ipynb b/jupyter_book/01_wiederholung.ipynb new file mode 100644 index 0000000..3ba8ff3 --- /dev/null +++ b/jupyter_book/01_wiederholung.ipynb @@ -0,0 +1,94 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "1a44722c-9586-4418-ad7f-8a3c964a9db8", + "metadata": {}, + "source": [ + "# Wiederholung\n", + "\n", + "Um alle Teilnehmer auf den gleichen Stand zu bringen fangen wir dort an, wo der erste Kurs geendet hat." + ] + }, + { + "cell_type": "markdown", + "id": "5246ab8c-2b98-48f0-9dc5-a36d99ecff60", + "metadata": {}, + "source": [ + "## Packages, Funktionen, Arrays und Rechnen" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "c04b1fca-a1f5-4ba2-90a8-216c3cc41556", + "metadata": {}, + "outputs": [], + "source": [ + "import random\n", + "random.seed(42)\n", + "\n", + "def rand_numbers(n, start, end):\n", + " \"\"\" Erzeugt einen Array mit Zufallszahlen mit 2 Nachkommastellen\n", + " n\n", + " Anzahl der erzeugten Zufallszahlen\n", + " \n", + " start\n", + " Kleinste mögliche Zahl (inklusiv)\n", + " \n", + " end\n", + " Größte mögliche Zahl (exklusiv)\n", + " \"\"\"\n", + " digits = 2;\n", + " factor = 10 ** digits;\n", + " result = []\n", + " for i in range(n):\n", + " result.append(random.randint(start * factor, end * factor) / factor)\n", + " \n", + " return result " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "ff484198-3f23-439c-a17d-790e24d74c7e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[-0.13, -0.29, -0.61, -0.45, 0.95, -0.14, -0.74, -0.77, -0.03, -0.76]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rand_numbers(10, -1, 1)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/jupyter_book/02_mehr_zu_funktionen.ipynb b/jupyter_book/02_mehr_zu_funktionen.ipynb new file mode 100644 index 0000000..4d5ca9c --- /dev/null +++ b/jupyter_book/02_mehr_zu_funktionen.ipynb @@ -0,0 +1,212 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "1a44722c-9586-4418-ad7f-8a3c964a9db8", + "metadata": {}, + "source": [ + "# Mehr zu Funktionen" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c04b1fca-a1f5-4ba2-90a8-216c3cc41556", + "metadata": { + "tags": [ + "hide-input" + ] + }, + "outputs": [], + "source": [ + "import random" + ] + }, + { + "cell_type": "markdown", + "id": "4679037e-31c3-407f-8b52-7fa086b0f238", + "metadata": {}, + "source": [ + "## Default-Werte\n", + "\n", + "An der Funktion ist unschön, dass sie die Zufallszahlen immer mit 2 Nachkommastellen zurück gibt.\n", + "\n", + "In den meisten Fällen ist das OK aber manchmal möchte ich weniger oder auch mehr Nachkommastellen.\n", + "Dies lässt sich problemlos mit einem weiteren Parameter realisieren. Dem kann man sogar einen Default-Wert geben." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "d29042ce-7023-45f2-a389-e73d4ddfd7e8", + "metadata": {}, + "outputs": [], + "source": [ + "def rand_numbers(n, start, end, digits=2):\n", + " \"\"\" Erzeugt einen Array mit Zufallszahlen mit 2 Nachkommastellen\n", + " n\n", + " Anzahl der erzeugten Zufallszahlen\n", + " \n", + " start\n", + " Kleinste mögliche Zahl (inklusiv)\n", + " \n", + " end\n", + " Größte mögliche Zahl (exklusiv)\n", + " \n", + " digits\n", + " Anzahl Nachkommastellen, Default: 2\n", + " \"\"\"\n", + " factor = 10 ** digits;\n", + " result = []\n", + " for i in range(n):\n", + " result.append(random.randint(start * factor, end * factor) / factor)\n", + " \n", + " return result " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "3f7b55f4-d79b-4df0-adb2-2a1664abc65b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[13.2, 11.47, 2.19, 1.47, 2.6]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rand_numbers(5, 1, 20)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "89b767d1-4305-492b-984f-960b322e89a6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[6.8, 12.5, 14.6, 10.0, 2.1]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rand_numbers(5, 1, 20, 1)" + ] + }, + { + "cell_type": "markdown", + "id": "3c19d60f-948b-46f7-a910-5573ac1131d8", + "metadata": {}, + "source": [ + "## Benannte Parameter\n", + "\n", + "Bei `math.sin(math.radians(45))` kann man verstehen, was die Funktionen tun und was `45` bedeutet.\n", + "\n", + "Bei `rand_numbers(5, 1, 20, 1)`, ist das ohne Dokumentation nicht mehr möglich.\n", + "Um Code verständlicher zu machen können die Parameter von Funktionen beim Aufruf benannt werden." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "e831c3a7-d8ef-4d0a-8a1d-9a41db33d9c4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[2.5, 6.0, 15.9, 16.3, 3.9]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rand_numbers(n=5, start=1, end=20, digits=1)" + ] + }, + { + "cell_type": "markdown", + "id": "e4f2a14d-4698-47a3-8440-29bf12e7150d", + "metadata": {}, + "source": [ + "Die Reihenfolge ist beliebig." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "7a3b4b92-19bc-4986-b87b-c9530fa8b60a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[15.5, 8.7, 14.4, 10.3, 11.7]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rand_numbers(end=20, start=1, digits=1, n=5)" + ] + }, + { + "cell_type": "markdown", + "id": "d798fca4-38b1-4e7c-86c9-88209728f611", + "metadata": {}, + "source": [ + "## Aufgabe\n", + "Was passiert, wenn man einzelne Parameter weglässt?" + ] + }, + { + "cell_type": "markdown", + "id": "dc71edeb-7f06-4609-938f-18b6d7619dba", + "metadata": {}, + "source": [ + "## Lösung\n", + "Man kann nur `digits` weglassen, weil dies einen Default-Wert hat. Alle anderen Parameter müssen angegeben werden." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/jupyter_book/03_matplotlib.ipynb b/jupyter_book/03_matplotlib.ipynb new file mode 100644 index 0000000..9bf29eb --- /dev/null +++ b/jupyter_book/03_matplotlib.ipynb @@ -0,0 +1,364 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "1a44722c-9586-4418-ad7f-8a3c964a9db8", + "metadata": {}, + "source": [ + "# Grafiken" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "d29042ce-7023-45f2-a389-e73d4ddfd7e8", + "metadata": { + "tags": [ + "hide-input" + ] + }, + "outputs": [], + "source": [ + "import random\n", + "def rand_numbers(n, start, end, digits=2):\n", + " \"\"\" Erzeugt einen Array mit Zufallszahlen mit 2 Nachkommastellen\n", + " n\n", + " Anzahl der erzeugten Zufallszahlen\n", + " \n", + " start\n", + " Kleinste mögliche Zahl (inklusiv)\n", + " \n", + " end\n", + " Größte mögliche Zahl (exklusiv)\n", + " \n", + " digits\n", + " Anzahl Nachkommastellen, Default: 2\n", + " \"\"\"\n", + " factor = 10 ** digits\n", + " result = []\n", + " for i in range(n):\n", + " result.append(random.randint(start * factor, end * factor) / factor)\n", + " \n", + " return result " + ] + }, + { + "cell_type": "markdown", + "id": "ab90ad44-8536-4445-8674-a451a9a4971f", + "metadata": {}, + "source": [ + "## Matplotlib\n", + "\n", + "Bisher haben wir nur mit Zahlen ein Texten gearbeitet.\n", + "Dafür haben wir die Packages `math` und `random` verwendet.\n", + "\n", + "Jetzt möchten wir Grafiken erzeugen. Dazu benötigen wir ein weiteres Package: `mathplotlib`,\n", + "genauer gesagt, davon erst einmal nur den Teil `pyplot`.\n", + "\n", + "Um uns Tipparbeit zu sparen sagen wir beim `import`, dass wir im Folgenden dieses Package `plt` nennen möchten." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "89b767d1-4305-492b-984f-960b322e89a6", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "numbers = rand_numbers(50, -100, 100)\n", + "plt.plot(numbers);\n", + "plt.show() # bei manchen Jupyter-Versionen nicht nötig, einfach mal ohne testen" + ] + }, + { + "cell_type": "markdown", + "id": "fa5231c5-7b2a-4d02-a0e3-69a8ee78d930", + "metadata": {}, + "source": [ + "## Aufgabe\n", + "Erklärt,\n", + "1. was das Programm tut\n", + "2. was auf der Grafik zu sehen ist\n", + "3. wozu das Semikolon in der vorletzten Zeile dient" + ] + }, + { + "cell_type": "markdown", + "id": "486f4398-0d21-411d-8f91-e57fc925d2b8", + "metadata": {}, + "source": [ + "## Lösung\n", + "1. Was tut Programm?\n", + " - es importiert die Bibliothek `mathplotlib.pyplot`. Diese enthält Funktionen zum Zeichnen von Grafiken\n", + " - diese Bibliothek nennen wir `plt` weil das schneller zu schreibenist als `mathplotlib.pyplot`\n", + " - 50 Zufallszahlen zwischen -100 und 100 erzeugt und diese im Array mit dem Namen `numbers` speichern\n", + " - die Zufallszahlen in `numbers` zeichnen\n", + "1. Was ist auf Grafik zu sehen?\n", + " - Der Wert der Zufallszahlen ist auf der y-Achse\n", + " - Die 0te Zufallszahl ist auf der x-Achse bei x=0, die 1te Zufallszahl bei x=1 usw.\n", + "1. Die Funktion plot() zeichnet die Grafik und liefert zusätzlich noch ein Ergebnis zurück. Das Semikolon sorgt dafür, dass das Ergebnis nicht angezeigt wird." + ] + }, + { + "cell_type": "markdown", + "id": "5feb449e-76c4-4ea9-b0e2-4912f100cc39", + "metadata": {}, + "source": [ + "## Aufgabe\n", + "Wie kann man erkennen, wie gleichmäßig die Zufallszahlen verteilt sind?" + ] + }, + { + "cell_type": "markdown", + "id": "7d02f67c-6395-42be-988d-e29d182d0bd5", + "metadata": {}, + "source": [ + "## Lösung\n", + "Die Zufallszahlen der Größe nach sortieren.\n", + "Je gleichmäßiger sie verteilt sind desto gerader ist die Linie im Graphen." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "c3cd108d-ec9f-4570-b604-b18c07887f95", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "numbers.sort()\n", + "plt.plot(numbers);\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "4866c521-8484-413b-80af-7bb129a5c2c5", + "metadata": {}, + "source": [ + "Das sieht schon nicht schlecht aus. Abweichungen von der Gerade sind aber deutlich zu sehen." + ] + }, + { + "cell_type": "markdown", + "id": "2f2ddb2c-d63e-4ee7-b5c1-1c148eea8787", + "metadata": {}, + "source": [ + "## Aufgabe\n", + "Welche Stelle im Programm muss geändert werden damit der erzeugte Graph viel näher an einer Gerade ist?" + ] + }, + { + "cell_type": "markdown", + "id": "7cc38c4b-8ff6-4549-9a26-df42bad9e42f", + "metadata": {}, + "source": [ + "## Lösung\n", + "Nach dem Gesetz der großen Zahlen müsste die Abweichung von der Gerade kleiner werden wenn man mehr Zufallszahlen zieht." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "aee05f91-0bbd-4c9e-a972-ff305167c974", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "numbers = rand_numbers(10000, -100, 100)\n", + "numbers.sort()\n", + "plt.plot(numbers);\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "fcdd2a03-14b2-4424-a0a0-5bc1e73017ae", + "metadata": {}, + "source": [ + "## Matplotlib Dokumentation\n", + "\n", + "Dokumentation zu Matplotlib und anderen Python Packages findet man im unteren Teil des Hilfe-Menüs.\n", + "\n", + "![jupyter_help.png](jupyter_help.png)\n", + "\n", + "Falls diese fehlen:\n", + "* matplotlib: https://matplotlib.org/stable/api/index.html\n", + "* pandas: https://pandas.pydata.org/docs/reference/index.html" + ] + }, + { + "cell_type": "markdown", + "id": "95389da8-8526-4904-bc04-01a2104f1d1d", + "metadata": {}, + "source": [ + "## Aufgabe\n", + "Erzeuge einen Graph mit Sinus und Cosinus-Funktion." + ] + }, + { + "cell_type": "markdown", + "id": "34fcc9ed-61b0-483a-ae79-fb5faa25ac9b", + "metadata": {}, + "source": [ + "## Lösung" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "0c429b71-11b0-4a30-8710-61298f161185", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import math\n", + "\n", + "sins = []\n", + "coss = []\n", + "\n", + "for i in range(360):\n", + " sins.append(math.sin(math.radians(i)))\n", + " coss.append(math.cos(math.radians(i))) \n", + " \n", + "plt.plot(sins)\n", + "plt.plot(coss);\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "6dda6efa-5540-4659-8f66-afd18b697f5c", + "metadata": {}, + "source": [ + "## Aufgabe\n", + "* Lest die Dokumentation zu `plt.plot` und verändert\n", + " * Farbe der Linie\n", + " * Dicke der Linie\n", + " * Beschriftung der x-Achse (Werte in Bogen- statt Gradmaß)\n", + "* Lest die Dokumentation zu `plot` und versucht den Graphen zu beschriften" + ] + }, + { + "cell_type": "markdown", + "id": "ba58416c-8104-468b-8a0b-88cf86e85879", + "metadata": {}, + "source": [ + "## Lösung" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "9e65731d-e81f-491a-ace5-46eaa6e208e6", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEWCAYAAABIVsEJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABUtElEQVR4nO3dd3hUZfbA8e+ZlpkUWugdpQiCoAQQKRZEUVGwV9a6uvxWwd5WRUBdu667lrWgsLqy9q6IAoKAQmhSFEERpQcQSJvJlPP7496EgAkpJLkzyft5njzM3Lkzc2ZC5sx5q6gqhmEYhlFRLqcDMAzDMBKTSSCGYRhGpZgEYhiGYVSKSSCGYRhGpZgEYhiGYVSKSSCGYRhGpZgEYtRaInKniLxYgfO7iUimiEg5zn1bRE45uAjLT0RmichVNfh8TUTkBxEJlOPcx0RkdE3EZcQXMfNADMMiIm8Db6rq1HKc2xd4VlV7V39kVgIBXlXVcifEg3y+x4AsVX2wHOe2ABYAh6pqQbUHZ8QNU4EYBkUfgscD75XnfFVdANQTkYzqjMsJIpIEXAq8Wp7zVXUz8ANwRnXGZcQfk0CMhCcit4nIRhHJFpHVIjLEPn6viLxqX24vIioil4rIryKyXUT+VuxhhgKLVTVon3+oiOwUkaPs6y1FJEtEjit2n1nAaaXEdJmIfL3fMRWRjvblV0TkaRH52I77WxE5tNi5Q+0mpN0i8i+g1GY1EXHbzXU/2Y+1SETa2LcdIyIL7cdZKCLH7Bfjz/Z91onIxfZN/YBdqrrBPq+RiGwQkdPt66kislZE/lSe98KovUwCMRKaiHQBrgX6qGoacDLwywHuMhDoAgwB7hGRrvbxHsDqwpNU9SfgNuBVEUkGXgYmq+qsYo/1PdDzIMK/ABgPNATWAvfbr6kx8A5wF9AY+AkYcIDHuRG4EDgVqAdcAeSJSCPgY+ApIB14HPhYRNJFJMU+for9vh0DLLUfb//3Yqf9mC+ISFPgCWCpqk4pFsPBvhdGAjIJxEh0USAJ6CYiXlX9xf7wL814Vc1X1WXAMvZ+6DUAsoufqKovYH2wfwu0AIpXLNjnNziI2N9V1QWqGgFeA3rZx08FVqrqW6oaBp4Ethzgca4C7lLV1WpZpqo7sCqCNar6H1WNqOrrWE1Np9v3iwHdRSSgqptVdaV9vAF/fC8+B94EvrTju2a/GA72vTASkEkgRkJT1bXA9cC9wDYRmSoiLQ9wl+IfxHlAqn35dyCthPNfALoD/1TV0H63pQG7Kh51mbG0BH4rvEGtkS6/Ubo2WFXK/loC6/c7th5opaq5wPnAX4DNdlPaYfY5pb0Xz2O9F6/YCaq4g30vjARkEoiR8FT1v6o6EGgHKPBQJR7mO6Bz8QMikor17f8l4F67Sai4rlhVTElygeRij9W8ArFsxkoKhfeV4tdL8BtwaAnHN2G9J8W1BTYCqOo0VR2KVV39gJUsoeT3wo2VQKYA/1fYl1PMgd4Lo5YyCcRIaCLSRUROsEcOBYF8rKaZipoOHCUi/mLH/gFkqupVWH0Jz+13n2OBT0t5vGXA4SLSy37MeysQy8f2fc8SEQ8wBjhQAnoRmCgincRyhIikA58AnUXkIhHxiMj5QDfgIxFpJiIj7L6QEJDD3vdtAdBARFoVe447sZLzFcAjwBQ7qRQ60Hth1FImgRiJLgl4ENiO1STUFLijog+iqluBGcAIABEZAQwDCifI3YiVYC62b+8D5NjDeUt6vB+BCcAXwBrg65LOK+W+24Fz7de1A+gEzD3AXR4H3gA+B/ZgVUwBu5lpOHCT/Ti3AsPtx3fZr2kTsBMrAYy2n78AeAW4xH6tve1z/6SqUawKT4Hb7dtbYCWm98r7Go3awUwkNAybiHQDJgN9tYw/DHvS4Uuq+kmNBFfDRKQJMAc4UlXzyzj3MeAnVX2mRoIz4oZJIIZhGEalmCYswzAMo1JMAjEMwzAqxSQQwzAMo1I8TgdQkxo3bqzt27d3OgzDMIyEsmjRou2q2mT/43UqgbRv357MzEynwzAMw0goIrL/igaAacIyDMMwKskkEMMwDKNSTAIxDMMwKsUkEMMwDKNSTAIxDMMwKsXRBCIik0Rkm4isKOV2EZGn7O0zvyvcXtS+7VIRWWP/XFpzURuGYRjgfAXyCtaKp6U5BWsl0k7A1cCzYO3RDIzD2ru5LzBORBpWa6SGYRjGPhydB6Kqs0Wk/QFOGQFMsVdG/UZEGthLRx8HTLf3akZEpmMloterI86TTnqTaFSpV89H/fpJHHJIfbp2TadnzyZ06tQQa7+fuikWjBHdFCW6PUpse4xYXgwtUIiA+AR84Krnwt3YjbuJG3dzN+Kuu++XYVS3rKw8MjO38P33O1m9eifbtuWxc2eQ227ry6mnHlKlzxXvEwlbse9WnhvsY6Ud/wMRuRqreqFt27aVCuKrrzZQUBAt8bbWrdMYMqQtZ5/dmWHD2uP1uks8rzaJZkUpWFFA+Ocw0c1Ra2eI8vKBt50Xb0cv3sO9uAJOF8GGkdhUlaVLt/H66z8wffp6li7dVuJ555zTucTjByPeE8hBU9XnsbbiJCMjo8Jr16sqs2dfQHZ2AXv2hNi5M8iPP/7O99/v4NtvN7NhQzaTJ69k8uSVNGkS4JJLunH99b1p27Zelb8WJ2lUKVheQGhRiOimYsnUBe5WdnXR2I0r1YUkCXhACxQNKbFdMaLbo0S3RIntiBFeEya8Jgyfg7eTl6S+SXjbeZ17cYaRgPLywrz00nKef/47VqzYXnQ8KclNv34tOPzwdA47LJ1WrVJp1MhP167pVR5DvCeQjey7F3Rr+9hGrGas4sdnVUcAIkK/fi1KvC0WU5Yvz+LTT9fxn/+sYtWqHTzxxCL++c8lXHJJV/72t6Pp2DGxu2Y0ooQWhQh+E0T32Pk3CXzdfPi6+PC081hNVeUU2xMjvC5MwYoCIusihH8IE/4hjLuNm8CgAN5DTSIxjAPJzi7gqacW8+STi9i+3drrKz09wIUXHsbIkR055piWBAI183fk+IZSdh/IR6ravYTbTgOuBU7F6jB/SlX72p3oi4DCUVmLgd6FfSKlycjI0OpaC0tVyczcwj/+sZjXX/+BWEzxel1cf31v7rrraOrVS6qW560uqkp4dZj86fnEdllbZbuauPAf48fX1Yd4D74fI7YnRmhJiNCCEBq0/h96DvWQfFIy7sa1vynQMCoiFlP+85+V3H77HLZsyQWgb9/m3HprX04//VB8vur7mxGRRaqa8YfjTiYQEXkdq5JoDGzFGlnlBVDV58Tqnf4XVgd5HnC5qmba970CuNN+qPtV9eWynq86E0hxP/20i/vum8/kyStRhWbNknn22aGceWanan/uqhDbHSP3o1wiP0cAK3EEjg/g7eytlgEDGrKrnK+DaEjBBf7+fvyD/YjHdLgbxurVO7n88s+YP38TYCWOBx4YxAkntK2RQTxxmUBqWk0lkEKZmVsYO3YG8+ZZv/RLLunGU0+dQMOG/hqLoSJUlYLvCsiblgchEL/gP85PUu8kxFX9/0ljuTHyZ+VTsLgAAHdTN8kjkvE0j/eWVsOoHrGY8tRTi7njjjkEgxFatEjhoYcGc/HF3XDVwN9kIZNAqPkEAtZ/gGeeWcKtt84mPz9C27ZpvP32CDIymtdoHGXRAiX3o1zCK8MAeLt4ST41GVdqzY+SivwWIfeDXGI7Y+CC5JOT8fX21enh0kbds2NHPpdc8jGfffYLAJdeejhPPnk8DRrU/BdQk0BwJoEUWrPmdy655GMWLNiCz+fmX/8awlVX9YiLD8Xojig5b+YQy4qBD5KHJeM7wtkPbC1Q8r/IJ7QoBICvh4/k05KrpO/FMOLdokVbOPvsD1i/fg/p6QEmTTqZM87o6Fg8pSUQMwi/hnTq1JDZsy/g//6vFwUFUa6++nPGjJlBNBpzNK7wujDZL2UTy4rhauyi3hX1SOqZ5HhiE5+QfGoyKSNTwAsFywvInpxNLMfZ98swqtvbb//IwIFTWb9+D336NGfx4lGOJo8DMQmkBiUleXj66ROZPPkUuwpZwjnnfEBeXtiReELfhcj5bw4aUrxdvNS7oh7uJvE1+snXw0e9K+rhauAiujlK9svZRLeXPKnTMBLdk08u4txzPyAYjHDVVT2YM+eCuJ5TZhKIA/70p8OZPv0cGjRI4r331nLiiW+ya1ewRmMIfhMk7/08iEFSvyRSzk2xJgDGIXdTN2lXpOFu6Sa2K0b2y9lENkacDsswqoyqcvvts7nhhpmowgMPDOL5508iKSm+B5CYBOKQwYPbMG/eRbRrV4/58zcxZMib7NiRXyPPHZwbJH+69VyBkwIkn5TseJNVWVwpLtJGpeHt5EWDSvar2UR+M0nESHyqys03z+Khhxbg8bh49dVTueOOfnH/NwkmgTiqa9d0Zs++gEMPbcDixVs54YQ3yMrKq9bnzJ+TT/4MK3kkn56Mv198DikuifiElHNT8HbzQgFkv5ZN+Bdnmv8MoyqoKtdfP5PHH1+E1+virbfO4OKLuzkdVrmZBOKwtm3rMXv2BXTp0ojvvsti2LC32bMnVC3PlT87n+Asq6ks+Yxkknol1ux4AHELKWem4DvCB2HImZpjmrOMhKSqjBkzg6eeWozP5+add0YwYkR8dpaXxiSQONCyZSqzZp1fVImccca75OdX7TfrYGaQ4FdBEEgekUxSz8RLHoXEJSSfkYyvh51EXs8hmmU61o3Ecu+98/jXv5aQlOTmvfdGMHz4oU6HVGEmgcSJ5s1TmD79HFq2TOWrrzZw/vkfEQ5XzYdiwaoC8j+1m62GJ5N0ROImj0IiQvLpyVafSL6S/Vo20V0miRiJ4bnnljJhwnxcLuGNN07nlFOqdp+OmmISSBzp0KEBn39+Do0a+fnww5/4858/52AneoZ/CZP7nrXwmv94f0I2W5VG3ELK2Sl42nrQbCXntRxieWaeiBHf3nnnR/7v/74A4N//Hhq3czzKwySQOHP44Y355JOzSUnxMnnySh58cEGlHyu6LUrOGzkQhaQ+SfgHJE6HeXmJV0g9PxV3czexnTFy38xFo3VndQUjscydu5GLLvoYVZg4cQBXXXWE0yEdFJNA4lC/fi149dVTEYE775zDO+/8WOHHiOXFrOQRAm9XL4GTAgkxLLAyxG8lEUkTIr9GyPsk76ArN8Ooar/+uoezznqfUCjK6NE9+dvfjnY6pINmEkicGjmyE3//+yAARo36hCVLtpb7vhpVct/OJfZ7DHcLNykjUmpkNV0nueq5SD0vFTxQsLSA0LfVM5LNMCojLy/MyJHvsW1bHkOHtuOpp4bUii90JoHEsVtv7cullx5OXl6E009/t2gTmbLkT88n8ksESRFSz0utMwsQelp6SBmRAljvQXiNmSNiOE9VueKKz1iyZBuHHtqAqVOH4/HUjo/e2vEqaikR4d//HsqAAa3YuDGHiy76qMzFF0NLQ4QWhsAFqeem4qpXt37Fvm4+/MdafT257+WakVmG4x58cAH/+99q0tJ8fPDBSBo1CjgdUpVx9NNFRIaJyGoRWSsit5dw+xMistT++VFEdhW7LVrstg9qNPAalJTk4c03T6dZs2RmzvyNcePmlXpuZIvV/g+QfGoynjbxvY5OdfEP8hcteZL7Vi4aMf0hhjNmzfqVu+76GhF47bXT6NatsdMhVSnHEoiIuIGngVOAbsCFIrLPHH5VvUFVe6lqL+CfwDvFbs4vvE1Vz6ipuJ3QokUqr78+HJdLuP/+b/jkk5//cI6GrH4PouDr5SPpyNozXLeiRITkEclFK/gWrvtlGDVp69ZcLrzwY2Ix5c47j+b00xNvomBZnKxA+gJrVfVnVS0ApgIjDnD+hcDrNRJZHDr++LZMnDgAsDrV16/fXXSbqpL3SR6xnTFcTVwkD0t2Ksy44Qq4SDk7BdwQygxRsKLA6ZCMOiQWU0aN+oQtW3IZPLg19957jNMhVQsnE0gr4Ldi1zfYx/5ARNoBHYAZxQ77RSRTRL4RkZGlPYmIXG2fl5mVlVUFYTvn9tv7ceqpHdi5M8iFF35MJGL1hxQsLbA+IL2Qek7d6TQvi6elh+STrWSa+3Eu0Z2mP8SoGX//+7dMn76exo0D/Pe/p9WaTvP9JcqrugB4S1WLfwK0s7dYvAh4UkRKrA9V9XlVzVDVjCZNmtRErNXG5RKmTDmVli1TmT9/Ew888A3RrCh5n+3t93A3jq8NoZzmO8pXtHpv7nu5aMz0hxjVa+7cjdxzz1wAXn31VFq1SnM4ourjZALZCLQpdr21fawkF7Bf85WqbrT//RmYBRxZ9SHGn/T0AFOmnALAhAnzmfX4zxAB3xG+WrHGVVUTsbbGlXpCdGOU4Jya3bjLqFuyswv4058+IRZTbr21Dyef3MHpkKqVkwlkIdBJRDqIiA8rSfxhNJWIHAY0BOYXO9ZQRJLsy42BAcCqGok6DgwZ0o6bbsogGlX+/PwMcv0R0+9xAK6Aq2h+SHBO0GxEZVSbG2+cyc8/76ZnzyZMnDjQ6XCqnWMJRFUjwLXANOB74A1VXSkiE0Sk+KiqC4Cpuu/aFF2BTBFZBswEHlTVOpNAAMb/5Wi6N2/Eup3Z3J25MG63o40X3vZekvongdpNWSHTlGVUrQ8+WMuLLy4nKcnNq6+eis9X+5uTpS6tGZSRkaGZmZlOh3HQtEDZ8/weVq7ewZDn3ydYEOWjj87ktNNq3zDBqqRRJXtSNtEtUXxH+Ug5LcXpkIxaYtu2XLp3f4WsrHwef/w4brghw+mQqpSILLL7nPeRKJ3oRjH5X+YT+z1G9x6Nue8+q0y++urp7Npl2vcPRNxiNWW5oGBxAeF1ZqkTo2r83/99QVZWPscf34axY3s7HU6NMQkkwYR/DRPKtJYqSR6RzPU39qZ//5Zs2pTDTTfNcjq8uOdu6sY/2FrqJO+jPLSg7lTgRvV4550fefvtNaSmennllVNw1fKFS4szCSSBaETJ+9Aasusf4MfTzIPb7WLSpJNJSnIzadIKPvtsncNRxj//MX5r/5BdMfK/NLPUjcr7/fcgf/3rlwA8+OBg2rat53BENcskkAQSnB20Zps3duEfuHdzqMMOS2f8eGum65///Dm7d5ulzA9E3NZ2uLisWerh9aYpy6icm2+exZYtuQwY0IrRo3s5HU6NMwkkQUQ2RwjOs/o4UoanIJ59y+SbbupDnz7N2bAhmzvvnONEiAnF09xTlITzPsozCy4aFfbFF+uZNGkFPp+bF188qU41XRUyCSQBaEzJ+ygP1NqatqRVdj0eFy+9dDJut/Dss0tZsGCzA5EmFv9AP67GLmI7YwTnmgEIRvnl5hZw9dWfAzBuXH8OOyzd4YicYRJIAgh9EyK6JYqrvovACaXvJdCjRxNuvDEDVbjmmulFa2UZJRO3NUsdIDg3SHS7WSvLKJ977pnLunXWhMFbbunjdDiOMQkkzkV3Rcn/yuroTT41GfEduEweN64/bdumsXTpNv71ryU1EWJC87bz4uvpgyjkfWr2UjfKtmzZNp58cjEul/Diiyfj9db+CYOlMQkkzuV/ng8R8Hb14u3oLfP8lBQf//rXiQDcfffXbNiQXd0hJrzAiQEkIER+iVCw3Cz7bpQuFlP++tcv7X97kZHR3OmQHGUSSBwLrw0TXh0GLySfVP61rk4//VDOPLMTOTlhxoyZUfYd6jhXsovAUKtpMH96PrF80/RnlGzKlJXMnbuRZs2S68RaV2UxCSROaUSLlmkPHBuo8N7mTz11AqmpXt59dw0ffvhTdYRYq/iO8OFp60Hz1MwNMUr0++9Bbr31KwAeffQ46tc3q1+bBBKngvOCxH635nwk9a34f9TWrdOKviGNHTuDYNCsQHsghcu+44KCJQVENpn3y9jXXXd9TVZWPoMHt+bii7s6HU5cMAkkDkV/jxYNK00+JRlxV258+bXXHsnhh6ezbt1uHn888ReRrG7uJm6S+lnJOm+a6VA39lq0aAvPPrsUt1t4+ukhiNS9OR8lMQkkDuVPszrOfd19eNuX3XFeGo/HxVNPDQHg/vu/MR3q5RAYFEBShOiGqOlQN4C9HeeqMHbsUXTvntg7m1Ylk0DiTPinMOE1YfBZo4MO1gkntOWsszqRlxfhtttmV0GEtZskCYEhdof6l/lm3xCD115bxbffbqZFixTuvXeA0+HEFZNA4ojGlLzP7Y7zQQFcaVXz63n00WNJSnLz3/9+z9y5pe0abBTyHeHD3dKN5ijBr80M9bosN7eA22+3lgZ68MHBpKX5HI4ovjiaQERkmIisFpG1InJ7CbdfJiJZIrLU/rmq2G2Xisga++fSmo28ehQsLiC2PYarYeU6zkvToUMDbr3Vmi07ZswMolEzTPVARKRoi+Dgt0GiO80M9brqkUcWsmlTDhkZzbjkkm5OhxN3HEsgIuIGngZOAboBF4pISb+h/6lqL/vnRfu+jYBxQD+gLzBORBrWUOjVIhaMFc04DwwJ/GGxxIN12219ad06jcWLt/Lyyyuq9LFrI08rD74jrBnq+Z+bYb110YYN2Tz88EIAHn/8+Dq5WGJZnKxA+gJrVfVnVS0ApgIjynnfk4HpqrpTVX8HpgPDqinOGhGcE0TzFE9bD97DKt9xXpqUFB+PPHIsAHfeOYc9e8yS72UJnBAAH4TXhAn/bJZ8r2vuuGMO+fkRzj23M4MGtXY6nLjkZAJpBfxW7PoG+9j+zhaR70TkLRFpU8H7IiJXi0imiGRmZWVVRdxVLrozSmiB9YEeOClQbUMEzz+/C8cc05KsrPyib1ZG6VxpLgID7Q71L/LRmOlQrysWLNjMq6+uwudz89BDg50OJ27Feyf6h0B7VT0Cq8qYXNEHUNXnVTVDVTOaNInP4Xf5X+RDDHw9fXha/HGp9qoiIjz66HEAPP54phnWWw5JfZOQekJ0qxnWW1eoKjfcMBOAG27oTYcODZwNKI45mUA2Am2KXW9tHyuiqjtUtbCt5UWgd3nvmyjCv+xd7ypw/MEP2y1L//4tOeeczuTnR7j77q+r/fkSnXiFwHF2FTIzHw2bKqS2e+ON1cybt4mmTZO5885+TocT15xMIAuBTiLSQUR8wAXAB8VPEJEWxa6eAXxvX54GnCQiDe3O85PsYwlFVYs6aP0D/FU2bLcsf//7ILxeF5Mnr2TZsm018pyJzHeED3czN5qtBL81w3prs2Bw73yp++4bSL16Zr2rA3EsgahqBLgW64P/e+ANVV0pIhNE5Az7tDEislJElgFjgMvs++4EJmIloYXABPtYQilYXkB0axSpJ/iP9pd9hyrSsWNDRo/uhSrcequZXFgWESlarTc4N0gs1wyDrq2efnoJ69fvoUePxlxxRXenw4l7UpfW+8nIyNDMzPhYE0ojyp5n9hDbHSP5jGSSetbsN53t2/Po2PEldu8O8dlnZ3PyyR1q9PkTUfbr2UTWRkjKSCL5lPIvr28khl27ghxyyIv8/nuQTz89m2HDzN9EIRFZpKoZ+x+P9070Wiu0KERsdwxXExe+HjU/u7Vx473tu7fc8pWZXFgOyUOSQazfndn+tvZ56KEF/P57kOOPb8PJJ7d3OpyEYBKIAzSoBOdYbemBEwKIQxOUxow5irZt01i+fDtTpqx0JIZE4m7qxtfLBwr5M8zkwtpk48ZsnnxyMWAtWWJW2y0fk0AcEJwfRPPtSYOdqn7SYHn5/R7uv38QAHfdNZf8fDNZriyBYwPghfDqMJFfzZ4htcX48fMJBiOcc05n+vZtUfYdDMAkkBoXy44VjeQJDKm+SYPlddFFXTnyyKZs2pTD008vdTSWROBKcxUNeMifmW/2DKkFfvhhBy+9tBy3W7j/frNNbUWYBFLD8ufkQxi8Xbx4WlffpMHycrn2/tH8/e/fmiVOysF/tB8JCJFfI0R+MlVIorvzzq+JxZQ///kIOndu5HQ4CcUkkBoU3RGlYHEBiL3OUpwYNqwDgwa1ZufOII89Fh+j1OKZ+AX/AFOF1Abz52/i3XfXkJzs4Z57+jsdTsIxCaQG5c/MBwVfLx/uxm6nwykisrcKefzxTLKy8hyOKP4lZSQhaUJ0S5Tw96bvKBGpatGkwRtuyKBFi1SHI0o8JoHUkMimiPVB44HA4PipPgoNGtSaU07pQE5OmL///Vunw4l74hUCg+wlTmaZhRYT0aefrmPOnA2kpwe45ZY+ToeTkEwCqSH5s6xhn0l9knDVi8+3vbAKeeaZpfz22x6Ho4l/vl4+XA1dxHbEKPjOLLSYSFSVu+6y1oK7446+1K9vliypjPj8JKtlijpbfeA/puaWLKmoI49sxnnndSEUijJx4jdOhxP3xC34j7V+n8HZQTRiqpBE8e67a1iyZBstWqTwf//Xy+lwEpZJINVMVYuqD38/P67k+H7LJ04cgNstTJq0nB9/TLjlxWqcr7sPd1M3sd0xQovNCLZEEI3GuOeeuQDcddfRBALOzcVKdPH9aVYLRH6JEFkfQfxC0tHxXyZ37tyIyy7rTjSqjBs3z+lw4p6I4D/OrkLmBNECU4XEu//9bzUrV+6gXbt6XHllD6fDSWgmgVQjVbVGXgFJ/ZNw+RPj7R43rj8+n5upU39g6VKz3HtZvJ29uFu50Tyz3Hu8i0RijBtnVR/33NOfpCTn52IlssT4REtQkbURohujSLLg7xu/fR/7a9OmXlG78N/+NsfZYBKAiBTN6wnNDxHLNwtTxqspU1aydu0uOnZswJ/+dLjT4SQ8k0CqyT59HwP8iC+xFme7446+pKR4+eSTdXzzzSanw4l73vZePB08aEgJfWP6QuJRKBRh/HirWXb8+AF4PObj72A5+g6KyDARWS0ia0Xk9hJuv1FEVonIdyLypYi0K3ZbVESW2j8f7H9fp4V/CBPdEkXShKTe8d/3sb+mTVO47rojAbj3XtMXUh6FW98GFwSJ5ZkqJN689NJyfv01m8MPT+f887s4HU6t4FgCERE38DRwCtANuFBEuu132hIgQ1WPAN4CHi52W76q9rJ/ziCOaGxv9REYGEC8iVV9FLr55j6kpnqZNu0X5s83VUhZPK09eA71QAGmCokz+flh7rvPGpo+YcIA3G5TfVQFJ9/FvsBaVf1ZVQuAqcCI4ieo6kxVLVxX4xugdQ3HWCkFKwuIbY/hqu/Cd2TNbxZVVdLTA4wd2xugqOPROLDAscWqELP1bdx49tllbN6cy5FHNuXMMzs5HU6t4WQCaQX8Vuz6BvtYaa4EPi123S8imSLyjYiMLO1OInK1fV5mVlbWQQVcHhpTgrOtkTj+wX7EnZjVR6Ebb+xNvXo+pk9fz9dfb3A6nLjnaeXB09EDYWvfF8N5OTkFRcvz3HffQMe3UKhNEqKOE5FLgAzgkWKH29l79F4EPCkih5Z0X1V9XlUzVDWjSZMm1R5rwfICYjtjuBq58B2RuNVHoUaNAowdexSAmRdSToVVSCgzZKqQOPDMM0vZvj2fo49uwSmnmH3Oq5KTCWQj0KbY9db2sX2IyInA34AzVLWoYVlVN9r//gzMAo6szmDLQ2NK8Gu7+hjod2yr2qp2ww0Z1K+fxIwZvzJ79m9l36GO87S0d5o0VYjjcnMLeOSRhQDce+8xpvqoYk4mkIVAJxHpICI+4AJgn9FUInIk8G+s5LGt2PGGIpJkX24MDABW1VjkpShYUaz66JH41Uehhg393HBDYV+IqULKo3CNrNDCELEcU4U4pbD66NevBSed1N7pcGodxxKIqkaAa4FpwPfAG6q6UkQmiEjhqKpHgFTgzf2G63YFMkVkGTATeFBVHU0gGlOCc2pf9VHo+ut706BBErNm/cbMmb86HU7c87Tw4O3shQgE55kqxAnFq49x4/qb6qMaODqPX1U/AT7Z79g9xS6fWMr95gFxtYhNUfXRsHZVH4Xq10/ixhszuOeeuYwbN4/jjmtj/iDL4D/WT/jHMKFFIfz9/bjSEqLLsdZ47rllZGXl06dPc4YNM30f1cH8j64CtbXvY39jxx5Fw4Z+5szZwIwZpgopi6e5B28XU4U4IS8vzMMPm76P6mYSSBUIrwwT2xHD1aB2Vh+F6tVL4qabMgCrL8TsBV62or6QRSFie0xfSE157rllbNuWR0ZGMzPyqhqZBHKQNKbkz7HXvBqY+PM+yjJmzFE0auRn7tyNfPHFeqfDiXueZh68Xb0QNVVITbGqjwUAjBtnqo/qZBLIQQqvsquP+rVj3kdZ0tJ8RftHmyqkfAKD7Xkhi00VUhOef/47tm7No3fvZpx22iFOh1OrmQRyEFTrVvVR6NprjyQ9PcD8+ZtMFVIO7qZuvN1MFVIT8vPDPPSQVX3cc48ZeVXdTAI5COFV4b1rXvWs/dVHodRUH7fcYvWF3HuvqULKIzDIVCE14YUXlrNli7Xm1emnl7g4hVGFTAKppH2qjwF1p/oo9Ne/WlXIvHmmCikPd1O36QupZsFghAcftNa8Mn0fNcMkkEoKfx8mlhVD6kmdqj4Kpab6uPlmU4VUhOkLqV4vvPAdmzfn0qtXU844w1QfNcEkkEpQLTbrfIAf8dTNbzrFq5AvvzTzQspiqpDqY1Ufpu+jppkEUgnhH8JEt9m7DfZKvN0Gq0pamqlCKsr0hVSPl15azqZNORxxRBNGjOjodDh1hkkgFWSqj3399a9HFs0LMVVI2dzNTBVS1UKhSNF+H+PG9cdVS1eCiEcmgVRQeHWY6Fa7+jiy7lYfhawqxJoXYqqQ8tmnCsk2VcjBeuml5WzcmEOPHo0ZOdLsNliTTAKpANViuw0eY6qPQtdeu7cKMWtklc1UIVXHqj729n2Y6qNmmQRSAeEf7eojVUg6ylQfhUwVUnFFVcgiU4UcjJdfXsGGDdl0796Ys87q7HQ4dY5JIOVkqo8DK6xCvv7aVCHl4W7mxnuYqUIORkFBlAcesPo+7r77aFN9OMAkkHIKrwkT3WKqj9KkpfmKVuo1VUj5+AfbK/WavpBKefnlFfz2WzbduqVzzjldnA6nTnI0gYjIMBFZLSJrReT2Em5PEpH/2bd/KyLti912h318tYicXJ1x7lN99PcjXvNNpySmCqkYTzOPVYWY/UIqzKo+vgFM34eTHEsgIuIGngZOAboBF4pIt/1OuxL4XVU7Ak8AD9n37Ya1h/rhwDDgGfvxqkVkbYTo5iiSIiT1NtVHaYrvFzJ+/HxThZSDqUIqZ8qUlfz6azZduzbinHNM34dTykwgInKdiDSshufuC6xV1Z9VtQCYCozY75wRwGT78lvAELGmmI4ApqpqSFXXAWvtx6tyqkr+bHvNK1N9lKmwCpkzZwMzZ/7mdDhxz1QhFRcOR7n/fqv6uPvu/rjdpiXeKeV555sBC0XkDbvJqao+QVsBxT9hNtjHSjxHVSPAbiC9nPcFQESuFpFMEcnMysqqcJC6R4ntiSHJpvooj3r1rL3TwfSFlJd/kKlCKuLVV1fxyy976NKlEeedZ/o+yhLLjhH+OVwtf4tlJhBVvQvoBLwEXAasEZEHRCQhVitT1edVNUNVM5o0aVLh+7vqu6h/XX1SL0pFfKb6KI/rrjuyaO90U4WUzdO8WBUy31QhBxKJxLj/fmvk1V13HW2qj3IIzguS81oOwZlV/3+rXO++Wqlri/0TARoCb4nIwwfx3BuBNsWut7aPlXiOiHiA+sCOct63yohH8LTwVNfD1zr79oWYKqQ8iqoQMy/kgP773+/56adddOzYgAsuOMzpcOJeLDtGaHEIwNrUrIqVpw9krIgsAh4G5gI9VHU00Bs4+yCeeyHQSUQ6iIgPq1P8g/3O+QC41L58DjDDTmYfABfYo7Q6YFVICw4iFqOKFVYhs2dvYNYsU4WUxdPcg7eLqUIOJBKJcd99Vt/HXXcdjcdjqo+yBL8JQgS8Xbx4mlf9l+Dy/AYaAWep6smq+qaqhgFUNQYMr+wT230a1wLTgO+BN1R1pYhMEJEz7NNeAtJFZC1wI3C7fd+VwBvAKuAz4K+qGq1sLEbVs/pCegOmL6S8ikZkLQoRyzFVyP7+978fWLPmdw45pD4XX7z/gE1jf7GcGKFMq/oorHCrmtSlP+yMjAzNzMx0Oow6Y/fuEB06vMDvvweZMeM8jj++rdMhxb2cN3IIrw6T1C+J5JOSnQ4nbkSjMQ4//BVWr97JSy+dzBVX9HA6pLiX90UeofkhvJ29pJ6felCPJSKLVDVj/+OmBjSqTf36e6uQ8ePnORxNYjBVSMneeGM1q1fvpH37eowaZaqPssRyi1Ufg6un+gCTQIxqdt11R9GwoZ+vvtrArFlmdnpZ9ukLMfNCAIjFlIkT5wNw551H4/VW25zhWiP4TRDC4O3krdYBQCaBGNWqfv0kbrhhb1+IUbZ9RmSZKoS33lrN99/vpG3bNC699HCnw4l7sbwYoYXV2/dRyCQQo9qNGXMUDRokmSqknDwtzIisQlb1YY28uuOOfvh8pvooS+ibEITBc6gHT6vqnX5gEohR7ay+kL1rZBllK6pCMut2FfLuu2tYsWI7rVuncfnl3Z0OJ+7F8mMEF1pfOgKDA9X+fCaBGDWisAqZNes3U4WUg6eFB2/nul2FxGLKhAnWF47bb+9LUpKZzFuW0DchKADPIR48rav//TIJxKgRxftCTBVSPkUjsupoFfLBB2v57rssWrZM5corzbDdstR09QEmgRg1yFQhFVOXqxDVvdXHbbf1xe831UdZQgtCEAJPBw+eNjXzfpkEYtSYBg38pgqpoLpahXz00c8sWbKN5s1T+POfTfVRllgwRujbmhl5VZxJIEaNKl6FfPWVWSOrLHWxCrGqD2vI96239iEQqPpFAGub0IIQGlI87Tx429Xc+2USiFGj9q1CzLyQ8tinCsmt/VXIp5+uIzNzK02bJnPNNT2dDifuaUj3Vh/VOOu8JCaBGDVuzJijqF8/iZkzTRVSHnWpCine93HLLX1ITjbVR1mCC4JoUPG09eBpV7N9RSaBGDXOVCEVV1SFLKzdVcjnn//Ct99upkmTAKNHm+qjLPtXH1W3YWz5mARiOGLs2L1VyOzZpgopi6eFB2+n2l2FqCr33DMXgJtv7kNKis/hiOJfcEEQzVfcbdx42tf8SDWTQAxHmBFZFec/tnb3hXzyyc8sWLCFpk2T+etfezkdTtyLBWPWxEEgcGygxqsPMAnEcFBhFTJjxq+mCimHoiokXPuqEKv6sJozb7+9r6k+yiH0bcjq+2jnwdvBmb4iRxKIiDQSkekissb+t2EJ5/QSkfkislJEvhOR84vd9oqIrBORpfZPrxp9AUaVaNDAz/XXHwWYKqS8amsV8v77a1m8eCstWqTwl7+Yvo+yxPJjBL+1vkT4j6vZkVfFOVWB3A58qaqdgC/t6/vLA/6kqocDw4AnRaRBsdtvUdVe9s/S6g7YqB7XX9+7qAqZM2eD0+HEvdpYhcRiyrhxVvVx5539zLyPcgjNt2edH+LB29a598upBDICmGxfngyM3P8EVf1RVdfYlzcB24AmNRWgUTP2rULMiKzyqG3zQt5++0e++y6L1q3TuOqqI5wOJ+7F8mIEF9hrXh1bM2telcapBNJMVTfbl7cAzQ50soj0BXzAT8UO3283bT0hIkkHuO/VIpIpIplZWVkHHbhR9caO7U29ej6+/NJUIeXhaVl7qpBoNFa00djf/tbPrHlVDsF51m6Dno41s+LugVRbAhGRL0RkRQk/I4qfp6oK6AEepwXwH+ByVS38unUHcBjQB2gE3Fba/VX1eVXNUNWMJk1MAROPGjb0c/31Zl5IRdSWKuSNN1azatUO2rWrxxVXmDWvyhLL2bvboNPVB1RjAlHVE1W1ewk/7wNb7cRQmCC2lfQYIlIP+Bj4m6p+U+yxN6slBLwM9K2u12HUjOuv31uFfP21qULKUhuqkEhkb/Vx9939zW6D5RCcF4QIeDt78bR0vlpzqgnrA+BS+/KlwPv7nyAiPuBdYIqqvrXfbYXJR7D6T1ZUZ7BG9du3CjEjssoj0auQ//73e3788XcOOaQ+f/pTN6fDiXux7BihTHvW+bHOjbwqzqkE8iAwVETWACfa1xGRDBF50T7nPGAwcFkJw3VfE5HlwHKgMXBfjUZvVIvCKuSLL9abKqQc9qlCvkmsKiQcjhateTVu3DF4vab6KEtwbhCi4D3Mi6e589UHOJRAVHWHqg5R1U52U9dO+3imql5lX35VVb3FhuoWDddV1RNUtYfdJHaJquY48TqMqtWwoZ+xY828kIpI1DWypkxZxU8/7aJz54ZcdFFXp8OJe7HdMUKL46fvo5CZiW7EleJVyNy5G50OJ+55WnrwdPQkVBVSUBBl4sS91YfHYz6GypL/db5VfXTz4m4aP9Wa+c0ZcaVRo0CxKsSMyCqPwv2vQwtDxPLivwp54YXvWL9+D926pXP++V2cDifuRXdGKVhaAFJze52Xl0kgRtwprEKmTzd9IeXhaVWsCpkX31VITk5BUfVx330DcbvNR1BZ8mflQwx8R/hwN4mf6gNMAjHiUKNGgaIRWbffPgdrqpBxIIXt4qGFIWJ74rcK+cc/FrN1ax59+zZn5MiOTocT9yJbIoRXhsFd87sNlodJIEZcuummDBo3DjB37kY+/vhnp8OJe56WHryHWfuF5M/OdzqcEu3Ykc/DDy8A4MEHBzuy/HiiyZ9p/S6TMpJwN4iv6gNMAjHiVL16Sfztb0cDcMcdc4hG4/dbdbwIHB8AgYKlBUS3R50O5w8eemgBe/YUMHRoO44/vq3T4cS98PowkbUR8IF/QPxVH2ASiBHHRo/uSdu2aaxYsZ3XXvve6XDinruxG18vH6jdbh5HNmzI5p//XALAAw8Mcjia+Keq5M+wfof+o/24UuLzozo+ozIMICnJw4QJAwC45565hEIRhyOKf4HBAfBA+PswkU3x835NmDCfYDDCued2JiOjudPhxL3wmjDRDVEkWfAfHZ/VB5gEYsS5Sy7pRvfujVm/fg/PPbfM6XDinquei6S+1uLU+V/mx8UAhB9/3MmkSctxu4WJEwc6HU7c01ix6mOgH0mK374ik0CMuOZ2u4qaPO677xv27Ak5HFH88x/jR/xC5JcIkZ+dr0Luvnsu0ahy+eXd6dKlkdPhxL2CFQXEsmK46rtI6l3qThVxwSQQI+4NH34IAwa0Yvv2fB57LNPpcOKeK+DCf4zV7JE/w9kqJDNzC2+8sZqkJDfjxh3jWByJQiNK8Ct7q9pj/YgnfqsPMAnESAAiwoMPWlXIY49lsnVrrsMRxb+kvklImhDdErXmEThAVbnpplkAjBlzFK1bpzkSRyIJLQwR2xXD1diFr4fP6XDKZBKIkRAGDmzN8OGHkJsbNkuclIN4pWjZi/yZ+Wik5quQDz74idmzN5CeHuDOO/vV+PMnmlhejOAcq/pIHpqMuOK7+gCTQIwE8tBDg3G7hX//+ztWrtzudDhxz9fLh6uJi9iuvbvY1ZRwOMqtt34FwLhx/WnQIH5HEsWL4JwgGlI8h3jwHBofy7WXxSQQI2F069aYa67pSSym3HLLV06HE/fEJSQPTQYgf05+jS73/txzy/jxx9/p1Kkh11zTs8aeN1FFd0SLNosKDAkkzCx9RxKIiDQSkekissb+t2Ep50WLbSb1QbHjHUTkWxFZKyL/s3cvNOqAe+89hnr1fHz66TqmTVvndDhxz3uo1/o2G4Lg7JpZaHHXrmDRfi4PPzzYbFVbDvkz7AUTe/niZrOo8nCqArkd+FJVOwFf2tdLkl9sM6kzih1/CHhCVTsCvwNXVm+4Rrxo0iS5aImTm26aRSRiljgpS/KJySAQWhQimlX9S5w88MC37NiRz+DBrRkxwiyYWJbwr2HCP4TBC4Hj4mu59rI4lUBGAJPty5Ox9jUvF3sf9BOAwn3SK3R/I/GNGXMU7dvXY+XKHUyatNzpcOKeu6kb35H2EidfVu8SJ7/8spt//GMxAI89dlzCNMU4RVXJn25PGuzvx5WWWL0KTkXbTFU325e3AM1KOc8vIpki8o2IjLSPpQO7VLVwhtQGoFVpTyQiV9uPkZmVlVUVsRsO8/s9PPTQYMCapGYmF5YtcGwAfNYSGeGfq29Y7x13zKGgIMrFF3c1S5aUQ3hlmOimKJIq+Psn3kCDaksgIvKFiKwo4WdE8fPUmuVU2hjDdqqaAVwEPCkih1Y0DlV9XlUzVDWjSZMmFX8hRlw699wu9O/fkm3b8njooQVOhxP3XKkuAgPtYb3T89FY1Q/r/eabTUyd+gNJSW7uv98sWVIWDe9dsiRwXADxJV61Vm0JRFVPVNXuJfy8D2wVkRYA9r/bSnmMjfa/PwOzgCOBHUADESnsaWoNmM2z6xgR4fHHjwOsyYXr1+92NqAEkNQvCVd9F9FtUQqWFVTpY8diynXXfQnAjTdm0K5d/Sp9/NooOC9IbHfMamLsmZjjgJxqwvoAuNS+fCnw/v4niEhDEUmyLzcGBgCr7IplJnDOge5v1H5HH92SCy88jFAoaob1loN4hMAJeycXxoJVNwDh5ZdXkJm5lVatUs2kwXKI7ooWbT8cGBZIiEmDJXEqgTwIDBWRNcCJ9nVEJENEXrTP6QpkisgyrITxoKqusm+7DbhRRNZi9Ym8VKPRG3HjoYcGk5zs4c03f+SLL9Y7HU7c8x7uxdPGg+buXXPpYO3aFeSOO2YD8Mgjx5KampjfpmtS/vR8iFi/D287r9PhVJojCURVd6jqEFXtZDd17bSPZ6rqVfblearaQ1V72v++VOz+P6tqX1XtqKrnqqrpRa2j2rSpx1139Qfguuu+pKAg/nbiiyciQmCYtXNhaGGIyNaDX6133Lh5ZGVZw3YvuOCwKoiydgv/vHfYbvKJyU6Hc1ASa8yYYZTgxht706lTQ374YSf/+Mcip8OJe57mHpIykqxhvZ8d3Gq9K1Zk8fTTS3C5hKeeOsEM2y2DRpW8aXkABAYFcNVL7I/gxI7eMLB2LnzqqRMAGD9+Phs3ZjscUfzzH+dHkoXIrxEKVlSuQ11Vue66GUSjyujRPenZs2kVR1n7hBaGiG2P4WrkIqlffO/1UR4mgRi1wrBhHRg5siO5uWHToV4OLr+LwBC7Q/2LfDRU8SrkzTdXM2vWb6SnB4q2HjZKF8uJkT/bGrabfFJy3O/1UR4mgRi1xhNPHI/f7+H1139g1qxfnQ4n7vl6+nC3cqM5WvTBVl67d4e4/vqZADzwwEAaNUqsJTickDctD0Lg7eTF2ylxO86LMwnEqDXat69fNIR09OgvCIWc3841nokIyadYnbihb0NEtpT//brjjtls3pxL//4tueqqI6orxFojvDZMeJW93tWw2pNsTQIxapVbbulDly6N+OGHnfz97986HU7c87TwkNTH6lDP+zivXDPU58/fxHPPLcPjcfH880NxJegchpqiBUrep3bH+bEB3A1qz+rEJoEYtYrf7+H554cC1qqwq1aZjafKEjg+gNQTopuiZW48FQ5Hufrqz1G1knX37mZ5oLLkz84ntiuGu5m7VnScF2cSiFHrDB7chj//+QjC4Rh//vPnxKph3afaRJL2NmXlz8wnuqv0uTSPPprJihXbOfTQBtx999E1FWLCimyJEPomBALJwxNjm9qKMAnEqJUefngwzZunMG/eJv7972VOhxP3fJ19eLt5IQx5n+aVODfkp592MWGCtVHUs8+eSCBQOzqCq4vGlLyP80AhqU8SnpaJs1FUeZkEYtRKDRr4+ec/rbkht90228wNKYfkk5MRvxBZGyG8ct8l31WVa675nGAwwsUXd2Xo0PbOBJlAQpkha6n2NEm4jaLKyyQQo9Y6++zOjBjRkezsAv761y8PasZ1XeBKdRE40fqgy5uWRyxv72KLzz//HV9++Svp6YGiVZCN0kV3RIs270o+JRlJql1NV4VMAjFqLRHh6aeHkJbm4/331/Laa987HVLc8/Xy4WnnQfP2jhxat24XN900C4BnnhlC06YpzgWYADSm5H6YCxHw9fDh61J7F5c0CcSo1Vq1SuPJJ48H4Nprv2TDBtOUdSAiQvLpydbuhavCBL8LccUV08jNDXPuuZ057zyzWGJZQgtCRH+zdhkMnFw7m64KmQRi1HqXX96d4cMPYffuEFdeOc00ZZXB3dBN8lBrVNZT92Qya9ZvNGkS4OmnT3Q4svgX3R4t2mUw+bRkXIHa/RFbu1+dYWB9q37hhZNJTw/w+ee/8NxzZlRWWXxH+liXksP4TxYC8NxzQ2nSJLGXHq9uGlVy38+FqLVMjK9z7W26KmQSiFEnNG+ewrPPWt+gb755FmvW/O5wRPEtHI5x9auzyAtHOOeIQzmtXTunQ4p7wa+C1qirekLgpNrddFXIkYHJItII+B/QHvgFOE9Vf9/vnOOBJ4odOgy4QFXfE5FXgGOBwo2wL1PVpZWJJRwOs2HDBoLBqtmdLRH5/X5at26N11u7x/Wfe24XLrxwDa+//gMXXPAR8+ZdSFJS7RubXxXuuutrFi3ZSrtW9Xh0+DHkfZ6Hp40Hd9PaswxHVQr/EiY41/oMSRmZgstfN76bixPtwSLyMLBTVR8UkduBhqp62wHObwSsBVqrap6dQD5S1bcq8rwZGRmamZm5z7F169aRlpZGenp6ndwMR1XZsWMH2dnZdOjQwelwqt3u3SF69ZrML7/s4frre/PEE8c7HVLc+eKL9Qwd+iZutzBnzoUckVWfgmUFuJq4qHdlPcRb9/5ODiSWH2PPv/eg2Yp/oJ/A8bWv+hCRRaqasf9xp9LkCGCyfXkyMLKM888BPlXVvKoOJBgM1tnkAVb/QHp6ep2pwOrXT2Lq1NPxeFw8+eQiPvzwJ6dDiitZWXmMGvUJAOPGHUP//i1JHpaMK91FLCtG3udV/ieY0FSVvA/z0GzF3dqN/1i/0yHVKKcSSDNV3Wxf3gI0K+P8C4DX9zt2v4h8JyJPiEipK5SJyNUikikimVlZWaWdU964a6W69vr79WvBAw8MBODyyz8zQ3tt0WiMUaM+YcuWXAYNal20NL74hJSzUsANBYsLKFhVuR0Ma6PQwhDh1WFIspquattaV2WptgQiIl+IyIoSfkYUP0+tNrRS29FEpAXQA5hW7PAdWH0ifYBGQKnNX6r6vKpmqGpGkyZm5VDDctNNfTj55Pbs2JHPBRd8REFB6QsI1hXjx89j2rRfaNw4wGuvnYrbvffjwdPcQ2Co1TST+1Eu0R3m/Yr8FiF/ujVkN+W0FNwN617/ULUlEFU9UVW7l/DzPrDVTgyFCWLbAR7qPOBdVS1anEdVN6slBLwM9K2u1+GEq666ilWrVpV53pNPPsmUKVMOeM4FF1zAmjVrqiq0WsPlEqZMOYVWrVKZO3cjN9ww0+mQHPXRRz8xceI3uFzC1KnDadOm3h/OScpIwnuYF0KQ80ZOpbbBrS1iOTFy3sqBGCQdnYTv8No/ZLckTjVhfQBcal++FHj/AOdeyH7NV8WSj2D1n6yo+hCd8+KLL9KtW7cDnhOJRJg0aRIXXXTRAc8bPXo0Dz/8cFWGV2s0bZrC22+PwOdz88wzS5k0abnTITli7drfueQSq9/j/vsHMmRIyUN2RYSUM1JwNXYR2x4j9/3cOjkpU6NK7tu5aI7iaeshcELt6zQvL6fGMD4IvCEiVwLrsaoMRCQD+IuqXmVfbw+0Ab7a7/6viUgTQIClwF+qIqjfJ1bP3ICGdzcs9bbc3FzOO+88NmzYQDQa5e677+bZZ5/l0UcfJSMjg9TUVMaOHctHH31EIBDg/fffp1mzZsyYMYOjjjoKj8dDJBKhf//+PPLIIxx33HHccccduFwu7r//fgYNGsRll11GJBLB4zFDVvfXr18LnnnmRK66ahqjR39B9+6N6du3hdNh1Zjs7ALOOut9du8OMXJkR2677cDFvCQJqeelkv1SNuHVYYJfBwkMqlsfoPlf5BP5NYKkCilnpyDuutXvUZwjFYiq7lDVIarayW7q2mkfzyxMHvb1X1S1larG9rv/Caraw24Su0RVc2r6NVSVzz77jJYtW7Js2TJWrFjBsGHD9rk9NzeXo48+mmXLljF48GBeeOEFAObOnUvv3r0B8Hg8vPLKK4wePZovvviCzz77jHHjxgHgcrno2LEjy5aZ2delufLKHvzlLz0pKIhy1lnv15ml3yORGOef/yHLl2+nc+eGvPLKKeUaUOFOd5NyprWgYnBWkILVdadTPbgwSGhBCFyQek4qrtS6Md+jNOYraTEHqhSqS48ePbjpppu47bbbGD58OIMGDdrndp/Px/DhwwHo3bs306dPB2Dz5s107dq16LzDDz+cUaNGMXz4cObPn4/Pt7dNtmnTpmzatKko4Rh/9I9/nMCKFdv5+uuNnHbaO8yefQH16tWu7UeLU1Wuv34Gn366jvT0AB9/fBb165f/9Xo7efEf5yc4K0juO7m4/uTC06p2f5yE14TJn2avczU8GU+b2v16y6Nup8840LlzZxYvXkyPHj246667mDBhwj63e73eom+FbrebSCQCQCAQ+MPcjeXLl9OgQQO2bdt3TEIwGCQQqFvNDBXl87l5990RdOrUkGXLsjj33A8Jh2vvSKOnnlrM008vxedz8957I+jYseJfnvwD/fh6+iACOVNziP5ee9+vyJYIOe/kgIJ/kJ+knrX3y0VFmATisE2bNpGcnMwll1zCLbfcwuLFi8t1v65du7J27dqi6++88w47d+5k9uzZXHfddezatavoth9//JHu3btXdei1TuPGyXz66dk0aWItunjNNdNrZSfx22//WDTq7JVXhjFwYOtKPY6IkHxaMp5DrP1Dcv6b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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import math\n", + "\n", + "sins = []\n", + "coss = []\n", + "rads = []\n", + "\n", + "for i in range(360):\n", + " r = math.radians(i)\n", + " rads.append(r)\n", + " sins.append(math.sin(r))\n", + " coss.append(math.cos(r))\n", + "\n", + "plt.plot(rads, sins, color='violet', linewidth=2)\n", + "plt.plot(rads, coss, color='darkblue', linewidth=2)\n", + "\n", + "plt.title('sin(x) und cos(x)')\n", + "plt.xlabel('x von 0 bis 2π')\n", + "plt.ylabel('y')\n", + "plt.legend(['sin(x)', 'cos(x)']);\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/jupyter_book/04_pandas.ipynb b/jupyter_book/04_pandas.ipynb new file mode 100644 index 0000000..523c4a9 --- /dev/null +++ b/jupyter_book/04_pandas.ipynb @@ -0,0 +1,1262 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "1a44722c-9586-4418-ad7f-8a3c964a9db8", + "metadata": {}, + "source": [ + "# Daten analysieren\n", + "\n", + "Zufallszahlen und Sinuswerte zu visualisieren ist ganz nett, in der Realtität müssen aber Ergebnisse aus Umfragen oder Messwerte von Experimenten ausgewertet werden.\n", + "\n", + "Standard für die Datenanlyse mit Python ist das Package `pandas`." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "a5292e13-c487-4e3a-8085-21d80469a734", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas" + ] + }, + { + "cell_type": "markdown", + "id": "8a02c3e1-8ea1-475b-90f0-b3ea6141e4ba", + "metadata": {}, + "source": [ + "Um zu demonstrieren, wie `pandas` funktioniert, brauchen wir ein paar Daten. Die finden wir in der Datei `car.csv`, in der die Kosten eines Autos über mehrere Jahre hinweg erfasst wurden.\n", + "\n", + "CSV (Comma Separated Values) gibt es in verschiedenen Ausprägungen. In unserer Datei sind die Daten nicht mit Komma sondern einem Tabulator voneinander getrennt. Das muss man beim Einlesen mit `sep=\"\\t\"` angeben." + ] + }, + { + "cell_type": "markdown", + "id": "dc89267a-2993-4fb6-b225-99a233476f83", + "metadata": {}, + "source": [ + "## Hinweis\n", + "\n", + "Bei den folgenden Beispielen wird die Datei `car.csv` benötigt.\n", + "Diese findet sich [hier](https://gist.githubusercontent.com/cgiess/58f995bf88cd0e2269b634c7970eb479/raw/2de29b036ead1eabc402301e934b82e8f674aaf4/car.csv). Diese Datei muss auf den Jupyter-Rechner liegen. In der Regel kann man dies mittels `Upload Files` erreichen.\n", + "\n", + "![upload_file.png](upload_file.png)\n", + "\n", + "\n", + "Das `Upload Files` funktioniert aber bei https://jupyter.org/try-jupyter/lab/ nicht. Hier muss die Datei wie folgt bereitsgestellt werden (Stand Mai 2022):\n", + "\n", + "\n", + "```\n", + "from js import fetch\n", + "res = await fetch('https://gist.githubusercontent.com/cgiess/58f995bf88cd0e2269b634c7970eb479/raw/2de29b036ead1eabc402301e934b82e8f674aaf4/car.csv')\n", + "text = await res.text()\n", + "with open('car.csv', 'w') as f:\n", + " f.write(text)\n", + "\n", + "import os\n", + "os.listdir()\n", + "```\n", + "\n", + "Als Ergebnis sollte eine Liste mit Dateienamen angezeigt werden in der `car.csv` enthalten ist, z.B.:\n", + "\n", + "`['.matplotlib', '.ipython', 'car.csv']`" + ] + }, + { + "cell_type": "markdown", + "id": "f9c2b389-370c-4c43-b0f4-f05ed3910d88", + "metadata": {}, + "source": [ + "## CSV Dateien mit Pandas lesen" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "bd02ed34-11f1-40ed-b3f0-7217a0acccef", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DatumTypBeschreibungPreiskmLiter
02012-07-07KaufAutohaus13800.0030NaN
12012-07-10BenzinESSO57.0119934.89
22012-07-11VersichHaftpfl.104.30400NaN
32012-07-23BenzinKaufland55.0382834.20
42012-08-10BenzinKaufland56.72144435.47
.....................
2272021-08-28BenzinAVIA47.1010455229.27
2282021-10-09BenzinKaufland55.1010514733.97
2292021-10-19BenzinJET40.1010562324.32
2302021-12-04BenzinJET53.3010618634.19
2312021-12-25BenzinAVIA51.4210672731.96
\n", + "

232 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " Datum Typ Beschreibung Preis km Liter\n", + "0 2012-07-07 Kauf Autohaus 13800.00 30 NaN\n", + "1 2012-07-10 Benzin ESSO 57.01 199 34.89\n", + "2 2012-07-11 Versich Haftpfl. 104.30 400 NaN\n", + "3 2012-07-23 Benzin Kaufland 55.03 828 34.20\n", + "4 2012-08-10 Benzin Kaufland 56.72 1444 35.47\n", + ".. ... ... ... ... ... ...\n", + "227 2021-08-28 Benzin AVIA 47.10 104552 29.27\n", + "228 2021-10-09 Benzin Kaufland 55.10 105147 33.97\n", + "229 2021-10-19 Benzin JET 40.10 105623 24.32\n", + "230 2021-12-04 Benzin JET 53.30 106186 34.19\n", + "231 2021-12-25 Benzin AVIA 51.42 106727 31.96\n", + "\n", + "[232 rows x 6 columns]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d = pandas.read_csv(\"file:car.csv\", sep=\"\\t\")\n", + "d" + ] + }, + { + "cell_type": "markdown", + "id": "0f10f423-f74d-4de6-b4cc-bfe45664d40c", + "metadata": {}, + "source": [ + "Das scheint funktioniert zu haben. Eine kleine Änderung werden wir noch vornehmen. Die erste Spalte enthält ein Datum. Da dies verschieden geschrieben werden kann (31.12.2020, 12/31/2020, ...) müssen wir bei der Erkennung ein bisschen nachhelfen. In unserem Fall ist es ausreichend zu sagen, welche Spalten ein Datum enthalten." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "49844097-ddff-4331-831a-433cad03cda6", + "metadata": {}, + "outputs": [], + "source": [ + "d = pandas.read_csv('file:car.csv', sep='\\t', parse_dates=['Datum'])" + ] + }, + { + "cell_type": "markdown", + "id": "de418fbd-024f-4205-be0b-5357c6667ccb", + "metadata": {}, + "source": [ + "## Auf einzelne Daten zugreifen\n", + "\n", + "Der Rückgabewert von `read_csv` ist ein **Data Frame**.\n", + "Das sieht aus wie eine Tabelle. Was kann man damit nun machen?" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "0440feaf-1eff-4206-a349-ac2b3186ecce", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 13800.00\n", + "1 57.01\n", + "2 104.30\n", + "3 55.03\n", + "4 56.72\n", + " ... \n", + "227 47.10\n", + "228 55.10\n", + "229 40.10\n", + "230 53.30\n", + "231 51.42\n", + "Name: Preis, Length: 232, dtype: float64" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d[\"Preis\"]" + ] + }, + { + "cell_type": "markdown", + "id": "60b9d3f1-5665-42c3-9bba-f9e2293b2de3", + "metadata": {}, + "source": [ + "Einzelne Spalten kann man über den Spaltentitel adressieren. So eine Spalte nennt Pandas **Series**.\n", + "Möchte man einen Wert aus so einer Series haben, so muss man zusätzlich dessen Zeilennummer angeben." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "8be6a487-c75a-4ff2-b39d-7a4b2451391c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "13800.0" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d[\"Preis\"][0]" + ] + }, + { + "cell_type": "markdown", + "id": "c0d070ae-beaa-474b-ad12-3878169f638b", + "metadata": {}, + "source": [ + "Das Ganze geht auch umgekehrt.\n", + "Eine Zeile bekommt man über den Array `iloc`:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "745dcce7-0d8b-4e7b-bb30-43bb7e78b493", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Datum 2012-07-07 00:00:00\n", + "Typ Kauf\n", + "Beschreibung Autohaus\n", + "Preis 13800.0\n", + "km 30\n", + "Liter NaN\n", + "Name: 0, dtype: object" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d.iloc[0]" + ] + }, + { + "cell_type": "markdown", + "id": "4cb8b853-3151-44cc-9d11-d6656a19bc22", + "metadata": {}, + "source": [ + "... und einen einzelnen Wert daraus über den Spaltennamen." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "d779293b-4e75-4814-972d-138df30cf8a4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "30" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d.iloc[0][\"km\"]" + ] + }, + { + "cell_type": "markdown", + "id": "b710be5b-7be3-454b-8089-402719845f75", + "metadata": {}, + "source": [ + "Mit `head()` und `tail()` kann man zudem die ersten bzw. letzten N Spalten auswählen." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "9f9d880a-e119-45ef-8136-70866faf3236", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DatumTypBeschreibungPreiskmLiter
12012-07-10BenzinESSO57.0119934.89
\n", + "
" + ], + "text/plain": [ + " Datum Typ Beschreibung Preis km Liter\n", + "1 2012-07-10 Benzin ESSO 57.01 199 34.89" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d.head(2).tail(1)" + ] + }, + { + "cell_type": "markdown", + "id": "4cd9e9a2-a2da-4a75-8dbd-18206d99744b", + "metadata": {}, + "source": [ + "## Aufgabe\n", + "Wie bekommt man die 4. bis 6. Zeile?" + ] + }, + { + "cell_type": "markdown", + "id": "ccd76426-4859-4a79-8882-c3cd72dcfb5a", + "metadata": {}, + "source": [ + "## Lösung\n", + "Achtung: die 4. Zeile hat die Nummer 3 weil die Nummerierung mit 0 beginnt!" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "15e79e26-3e9f-4674-9fb6-fbf3fe3a1303", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DatumTypBeschreibungPreiskmLiter
32012-07-23BenzinKaufland55.0382834.20
42012-08-10BenzinKaufland56.72144435.47
52012-08-23SteuernKfz-Steuer50.001500NaN
\n", + "
" + ], + "text/plain": [ + " Datum Typ Beschreibung Preis km Liter\n", + "3 2012-07-23 Benzin Kaufland 55.03 828 34.20\n", + "4 2012-08-10 Benzin Kaufland 56.72 1444 35.47\n", + "5 2012-08-23 Steuern Kfz-Steuer 50.00 1500 NaN" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d.head(6).tail(3)" + ] + }, + { + "cell_type": "markdown", + "id": "bc38357a-65bd-4f59-969a-ca3bd8c2fc92", + "metadata": {}, + "source": [ + "## Was wissen die Daten über sich selbst?\n", + "Der Data Frame kann über sich selbst etwas sagen:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "100cc290-195c-4b74-a231-1c4bcc8c5d24", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Datum datetime64[ns]\n", + "Typ object\n", + "Beschreibung object\n", + "Preis float64\n", + "km int64\n", + "Liter float64\n", + "dtype: object" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d.dtypes" + ] + }, + { + "cell_type": "markdown", + "id": "4c75bf50-b650-462a-b48d-e00950065e4c", + "metadata": {}, + "source": [ + "Was bedeutet dies?\n", + "Für jede Spalte wird angegeben, welchen Typ die darin enthaltenen Daten besitzen.\n", + "* datetime64\\[ns] - ist ein Zeitstempel bestehend aus Datum und Uhrzeit wobei letztere eine Genauigkeit von Nanosekunden hat\n", + "* object - das sind Texte\n", + "* float64 - Zahl mit Nachkommastellen.\n", + "* int64 - Zahl ohne Nachkommastellen\n", + "\n", + "Über die Verteilung der Zahlen gibt die Funktion `describe()` Auskunft." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "676f6f12-173c-44ac-a5bc-34063a0c2ae0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PreiskmLiter
count232.000000232.000000201.000000
mean117.58357853910.50862131.144726
std904.53867131374.1364204.261039
min0.00000030.00000010.140000
25%39.84000027386.75000029.890000
50%45.16000053140.00000032.640000
75%50.00000081382.00000033.650000
max13800.000000106727.00000037.930000
\n", + "
" + ], + "text/plain": [ + " Preis km Liter\n", + "count 232.000000 232.000000 201.000000\n", + "mean 117.583578 53910.508621 31.144726\n", + "std 904.538671 31374.136420 4.261039\n", + "min 0.000000 30.000000 10.140000\n", + "25% 39.840000 27386.750000 29.890000\n", + "50% 45.160000 53140.000000 32.640000\n", + "75% 50.000000 81382.000000 33.650000\n", + "max 13800.000000 106727.000000 37.930000" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d.describe()" + ] + }, + { + "cell_type": "markdown", + "id": "02ec9241-c8e2-4ccb-b7ba-ef2062e6227e", + "metadata": {}, + "source": [ + "## Aufgabe" + ] + }, + { + "cell_type": "markdown", + "id": "1e083c1e-4efe-4f34-ac5a-027c5e64a977", + "metadata": {}, + "source": [ + "1. Welche Bedeutung haben diese Zahlen?\n", + "1. Welche davon helfen beim Verständnis der Daten?\n", + "1. Gibt es Datensätze, wo diese Funktion noch viel hilfreicher ist?" + ] + }, + { + "cell_type": "markdown", + "id": "e2d48322-849d-4a4b-aeba-51d588504ad3", + "metadata": {}, + "source": [ + "## Lösung\n", + "Die besprechen wir im Kurs" + ] + }, + { + "cell_type": "markdown", + "id": "878dec12-c334-4d2c-9d10-4500f38af752", + "metadata": {}, + "source": [ + "## Zeilen zählen" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "cb3dc7a5-a4f2-4c75-a251-2862fde3f324", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Datum 232\n", + "Typ 232\n", + "Beschreibung 232\n", + "Preis 232\n", + "km 232\n", + "Liter 201\n", + "dtype: int64" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d.count()" + ] + }, + { + "cell_type": "markdown", + "id": "5e773974-53d8-4a16-849b-708e429ef38d", + "metadata": {}, + "source": [ + "In der Spalte **Liter** fehlen einige Einträge. Darum liefert `count()` für diese einen kleineren Wert.\n", + "Nicht vorhandene Werte werden als **NaN** (Not a Number) angezeigt." + ] + }, + { + "cell_type": "markdown", + "id": "5af33628-90d0-490d-a413-f2083fe40a5a", + "metadata": {}, + "source": [ + "## Werte zählen" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "b7930759-6e4f-4a82-aa63-830a15dd8d8e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Benzin 201\n", + "Versich 10\n", + "Steuern 10\n", + "Werkst 9\n", + "Kauf 2\n", + "Name: Typ, dtype: int64" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d[\"Typ\"].value_counts()" + ] + }, + { + "cell_type": "markdown", + "id": "657dc390-cefc-4345-a2c8-86cd4da01b03", + "metadata": {}, + "source": [ + "## Rechnen\n", + "\n", + "Welche Kosten sind insgesamt angefallen? Dazu muss man alle Einträge der Spalte `Preis` aufsummieren." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "3e68e583-7427-40fa-86bf-f87571d83a63", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "27279.390000000003" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d[\"Preis\"].sum()" + ] + }, + { + "cell_type": "markdown", + "id": "9b631276-87e4-449b-9d07-52896b7fbc16", + "metadata": {}, + "source": [ + "## Aufgabe\n", + "\n", + "Was ist der Durchschnittsverbrauch des Autos über die gesamte erfasste Zeit?\n", + "\n", + "**Hinweise**\n", + "* Gesamtverbrauch, d.h. wieviele Liter wurden insgesamt verbraucht\n", + "* Fahrstrecke, d.h. km-Stand am Ende - km-Stand am Anfang\n", + "* Verbrauch wird i.d.R. in l/100km angegeben" + ] + }, + { + "cell_type": "markdown", + "id": "e2cfce0c-9eb6-4ac3-a2bb-43d085d20466", + "metadata": {}, + "source": [ + "## Lösung" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "081d24f8-cdc7-4273-80fb-c9e20a42f09b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5.867165899697274" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "l_total = d[\"Liter\"].sum()\n", + "\n", + "km_start = d[\"km\"].min() # oder d[\"km\"][0] -> km-Stand aus der 0ten Zeile\n", + "km_end = d[\"km\"].max() # oder d[\"km\"].iloc[-1] -> km-Stand aus der letzten Zeile,\n", + " # geht man von 0 eins zurück fängt man am Ende wieder an\n", + "\n", + "km_total = km_end - km_start\n", + "\n", + "fuel_avg = 100 * l_total / km_total\n", + "fuel_avg" + ] + }, + { + "cell_type": "markdown", + "id": "9b125258-956b-4a6e-8074-6f4956563bd0", + "metadata": {}, + "source": [ + "## Daten filtern\n", + "Wenn man nur an einem Teil der Daten interessiert ist kann man sich diesen selektieren." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "e15a92cf-d913-436e-8a51-440dfcbde914", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DatumTypBeschreibungPreiskmLiter
12012-07-10BenzinESSO57.0119934.89
32012-07-23BenzinKaufland55.0382834.20
\n", + "
" + ], + "text/plain": [ + " Datum Typ Beschreibung Preis km Liter\n", + "1 2012-07-10 Benzin ESSO 57.01 199 34.89\n", + "3 2012-07-23 Benzin Kaufland 55.03 828 34.20" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fuel_only = d[d[\"Typ\"] == \"Benzin\"]\n", + "fuel_only.head(2)" + ] + }, + { + "cell_type": "markdown", + "id": "561575e8-6193-44e1-956e-59a6e618d4d7", + "metadata": {}, + "source": [ + "## Aufgabe\n", + "1. Selektiere die Zeilen, bei denen der Preis kleiner als 100 ist.\n", + "1. Selektiere die Zeilen, bei denen der Preis gleich 50 ist.\n", + "1. Selektiere die Zeilen, bei denen Liter größer 36 und kleiner 38 sind." + ] + }, + { + "cell_type": "markdown", + "id": "c01cb1b4-dd7a-49f2-ae25-a13bd99de5fb", + "metadata": {}, + "source": [ + "## Lösung" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "bbe1a6eb-d467-4656-8c17-ab6f9e4ceeb2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DatumTypBeschreibungPreiskmLiter
62012-09-10BenzinAVIA60.80206136.87
72012-09-14BenzinOMV61.10271036.83
1062016-09-15BenzinKaufland48.514887237.93
1242017-05-30BenzinReal46.785786836.01
\n", + "
" + ], + "text/plain": [ + " Datum Typ Beschreibung Preis km Liter\n", + "6 2012-09-10 Benzin AVIA 60.80 2061 36.87\n", + "7 2012-09-14 Benzin OMV 61.10 2710 36.83\n", + "106 2016-09-15 Benzin Kaufland 48.51 48872 37.93\n", + "124 2017-05-30 Benzin Real 46.78 57868 36.01" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d[d[\"Preis\"] < 100]\n", + "d[d[\"Preis\"] == 50]\n", + "# d.described() sagte, dass der größte Wert 37.93 ist\n", + "d[d[\"Liter\"] > 36]\n", + "d[d[\"Liter\"].between(36,38)]" + ] + }, + { + "cell_type": "markdown", + "id": "8f1056bd-f6be-48a8-98ca-4f332989e45a", + "metadata": {}, + "source": [ + "## Daten Gruppieren\n", + "\n", + "Die Kosten sollen nach Spalte `Typ` bzw `Beschreibung` aufsummiert werden." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "3ecb95b7-de9d-4383-9162-ca1e5b5bf669", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Typ\n", + "Benzin 8704.15\n", + "Kauf 14296.68\n", + "Steuern 500.00\n", + "Versich 2596.02\n", + "Werkst 1182.54\n", + "Name: Preis, dtype: float64" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d.groupby(\"Typ\")[\"Preis\"].sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "9acedd39-f003-4a98-82ae-8082a2685d1c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Beschreibung\n", + "AGIP 32.80\n", + "ARAL 795.33\n", + "AVIA 671.59\n", + "Autohof 45.30\n", + "Avanti 64.10\n", + "BFT 88.66\n", + "BP 46.05\n", + "Bavaria 44.00\n", + "ESSO 1320.52\n", + "Elf 45.00\n", + "Globus 798.94\n", + "HEM 27.70\n", + "JET 1074.80\n", + "KK 183.34\n", + "Kaufland 1080.48\n", + "OMV 95.38\n", + "Oil 261.71\n", + "Real 222.15\n", + "SHELL 539.30\n", + "Star 99.80\n", + "Tango 56.85\n", + "Tankcenter 413.43\n", + "Total 481.25\n", + "UNO-X 43.36\n", + "Unbekannt 172.31\n", + "Name: Preis, dtype: float64" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fuel_only.groupby(\"Beschreibung\")[\"Preis\"].sum()" + ] + }, + { + "cell_type": "markdown", + "id": "d38f01a2-ffb8-48a5-a646-517989735b3b", + "metadata": {}, + "source": [ + "Das ist doch nett. Noch schöner wäre aber, wenn die Daten nach der zweiten Spalte absteigend sortiert wären.\n", + "Zudem ist man oft nur an den größten Ergebnissen interessiert." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "3152d46a-d38e-4e1c-8465-b13082c72638", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Beschreibung\n", + "ESSO 1320.52\n", + "Kaufland 1080.48\n", + "JET 1074.80\n", + "Globus 798.94\n", + "ARAL 795.33\n", + "AVIA 671.59\n", + "SHELL 539.30\n", + "Total 481.25\n", + "Tankcenter 413.43\n", + "Oil 261.71\n", + "Name: Preis, dtype: float64" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fuel_only.groupby(\"Beschreibung\")[\"Preis\"].sum().sort_values(ascending=False).head(10)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/jupyter_book/05_pandas_visu.ipynb b/jupyter_book/05_pandas_visu.ipynb new file mode 100644 index 0000000..aa610aa --- /dev/null +++ b/jupyter_book/05_pandas_visu.ipynb @@ -0,0 +1,847 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "1a44722c-9586-4418-ad7f-8a3c964a9db8", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "# Daten visualiseren" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "a5292e13-c487-4e3a-8085-21d80469a734", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import pandas\n", + "d = pandas.read_csv('file:car.csv', sep='\\t', parse_dates=['Datum'])\n", + "fuel_only = d[d[\"Typ\"] == \"Benzin\"]" + ] + }, + { + "cell_type": "markdown", + "id": "ac401f86-f53e-470f-b80a-02a86e3e5632", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Alles auf einmal\n", + "Mittels `plot()` werden alle Zahlenspalten in einer Grafik dargestellt.\n", + "\n", + "**Hinweis:** auf https://jupyter.org/try-jupyter/lab/ wird nur dann eine Grafik angzeigt wenn man explizit `show()`aus `matplotlib.pyplot` aufruft." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "f6af7955-e6ba-4f02-bfe0-e51f677778da", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "d.plot();\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "531b9a96-967c-4a20-89c4-8ddc2dd6e4d8", + "metadata": {}, + "source": [ + "Das ist in diesem Fall nicht besonders hilfreich weil jede Spalte eine andere Bedeutung hat.\n", + "Bei Messwerten, bei dem jede Spalte ein anderes Experiment ist könnte dies aber nützlich sein." + ] + }, + { + "cell_type": "markdown", + "id": "73365e97-2317-496c-8747-9514c3f385da", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Zwei Spalten als X-Y-Koordinaten darstellen" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "9279c8d3-eada-4cc1-a62f-00738cd22dde", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fuel_only.plot(kind=\"scatter\", x=\"km\", y=\"Preis\");\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "c50a29cb-39c3-4b3e-8e16-0c56adc09278", + "metadata": {}, + "source": [ + "Das sieht schon besser aus. Allerdings sind die Zahlen nicht wirklich vergleichbar. Besser wäre, den Preis / l darzustellen. Den müssen wir aber erst berechnen." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "f996d38c-c942-4f19-89ce-65ee49405419", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "ppl = fuel_only[\"Preis\"] / fuel_only[\"Liter\"]" + ] + }, + { + "cell_type": "markdown", + "id": "be50aaa8-1486-47a8-9f0c-bbdae50ef717", + "metadata": {}, + "source": [ + "Jetzt haben wir eine Spalte `ppl` (Preis pro l) und die Tabelle `fuel_with_ppl`.\n", + "Die Spalte `ppl` soll aber in die Tabelle eingefügt werden. Dazu benötigt sie zuerst einmal einen Namen." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "3092995f-b852-4db0-99aa-5bcf73cd0234", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "ppl_with_name = ppl.rename(\"Preis_pro_l\")" + ] + }, + { + "cell_type": "markdown", + "id": "db096e70-02ec-4f11-bfea-f229f72e6b89", + "metadata": {}, + "source": [ + "`rename()` benennt aber `ppl` nicht einfach um sondern erzeugt eine neue Spalte die den Namen enthält.\n", + "Diese kann kann mit der Tabelle vereinigt werden wobei wiederum eine neue Tabelle entsteht." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "70eb9694-9866-42e8-b8b0-b22c6ec46377", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "fuel_with_ppl = fuel_only.join(ppl_with_name)" + ] + }, + { + "cell_type": "markdown", + "id": "bd233836-e76e-4aed-b1e9-3b6f7c5439ef", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "Diese drei Befehle kann man auch in einem Zusammenfassen. Damit spart man sich neue Variablennamen." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "3df419ef-aae2-43fd-871c-d09985fad63f", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DatumTypBeschreibungPreiskmLiterPreis_pro_l
12012-07-10BenzinESSO57.0119934.891.633993
32012-07-23BenzinKaufland55.0382834.201.609064
\n", + "
" + ], + "text/plain": [ + " Datum Typ Beschreibung Preis km Liter Preis_pro_l\n", + "1 2012-07-10 Benzin ESSO 57.01 199 34.89 1.633993\n", + "3 2012-07-23 Benzin Kaufland 55.03 828 34.20 1.609064" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fuel_with_ppl = fuel_only.join((fuel_only[\"Preis\"] / fuel_only[\"Liter\"]).rename(\"Preis_pro_l\"))\n", + "fuel_with_ppl.head(2)" + ] + }, + { + "cell_type": "markdown", + "id": "b728a171-9484-4731-b933-628ed01f2f9c", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "Damit können wir jetzt die Treibstoffkosten in Abhängigkeit vom km-Stand darstellen." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "4732e828-26e7-4563-826a-c1e2589c6f7b", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fuel_with_ppl.plot(kind=\"scatter\", x=\"km\", y=\"Preis_pro_l\");\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "38c63e68-eedd-485b-a247-66191d549f17", + "metadata": {}, + "source": [ + "Interessant ist jetz noch der Verbrauch des Fahrzeugs, d.h. wieviele Liter pro 100 km es verbraucht hat.\n", + "Dazu muss man die Differenz zwischen jeweils zwei km-Ständen berechnen.\n", + "Dies geschieht mit der Funktion `diff()` die man auf eine Spalte der Daten anwendet." + ] + }, + { + "cell_type": "markdown", + "id": "21350aab-508b-4305-b817-6854bc80df37", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Aufgabe\n", + "1. Was macht die Funktion `diff()` genau?\n", + "1. Bei welchen Daten kann man die noch verwenden?" + ] + }, + { + "cell_type": "markdown", + "id": "fd0919aa-bf37-4437-af2f-00b9a8f121b2", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Lösung\n", + "Schauen wir uns das mal genauer an. Zuerst die Daten" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "8bae2c0a-cab5-4c78-b9aa-8c065b69d152", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1 199\n", + "3 828\n", + "4 1444\n", + "6 2061\n", + "7 2710\n", + "Name: km, dtype: int64" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fuel_with_ppl[\"km\"].head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "bd5eec5b-d958-428a-a164-eab324e9930d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1 NaN\n", + "3 629.0\n", + "4 616.0\n", + "6 617.0\n", + "7 649.0\n", + "Name: km, dtype: float64" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fuel_with_ppl[\"km\"].diff().head(5)" + ] + }, + { + "cell_type": "markdown", + "id": "31f246d4-bead-4393-a478-dd53e2719e86", + "metadata": {}, + "source": [ + "`diff()` berechnet die Differnz von zwei aufeinanderfolgenden Zeilen.\n", + "Den Abstand kann man aber auch selbst festlegen. Möchte man die Differenz von jeweils den übernächsten Zeilen muss man den Parameter `periods` verwenden." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "785605be-c477-4397-a7ac-bba042e94984", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1 NaN\n", + "3 NaN\n", + "4 1245.0\n", + "6 1233.0\n", + "7 1266.0\n", + "Name: km, dtype: float64" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fuel_with_ppl[\"km\"].diff(periods=2).head(5)" + ] + }, + { + "cell_type": "markdown", + "id": "b322a18f-8d5b-44a1-b7a3-02daae8caff7", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Weiter mit der Verbrauchsberechung\n", + "Wir erzeugen jetzt eine neue **Series** in unserem **Data Frame** die gefahrenen km zwischen zwei Tankstopps enthält.\n", + "Mit der Funktion `diff()` geht das ohne Umwege:" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "b2173099-01c9-47d4-ba6d-177654600e51", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DatumTypBeschreibungPreiskmLiterPreis_pro_lkm_driven
12012-07-10BenzinESSO57.0119934.891.633993NaN
32012-07-23BenzinKaufland55.0382834.201.609064629.0
\n", + "
" + ], + "text/plain": [ + " Datum Typ Beschreibung Preis km Liter Preis_pro_l km_driven\n", + "1 2012-07-10 Benzin ESSO 57.01 199 34.89 1.633993 NaN\n", + "3 2012-07-23 Benzin Kaufland 55.03 828 34.20 1.609064 629.0" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fuel_with_ppl[\"km_driven\"] = fuel_with_ppl[\"km\"].diff()\n", + "fuel_with_ppl.head(2)" + ] + }, + { + "cell_type": "markdown", + "id": "15ad8aed-e928-46dc-aa6e-25ced6032236", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "Nun können wir den Verbrauch berechnen ..." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "346095e8-ebeb-434c-81cd-ffa968176a74", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DatumTypBeschreibungPreiskmLiterPreis_pro_lkm_drivenl/100km
12012-07-10BenzinESSO57.0119934.891.633993NaNNaN
32012-07-23BenzinKaufland55.0382834.201.609064629.05.437202
\n", + "
" + ], + "text/plain": [ + " Datum Typ Beschreibung Preis km Liter Preis_pro_l km_driven \\\n", + "1 2012-07-10 Benzin ESSO 57.01 199 34.89 1.633993 NaN \n", + "3 2012-07-23 Benzin Kaufland 55.03 828 34.20 1.609064 629.0 \n", + "\n", + " l/100km \n", + "1 NaN \n", + "3 5.437202 " + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fuel_all = fuel_with_ppl.join((fuel_with_ppl[\"Liter\"] * 100 / fuel_with_ppl[\"km_driven\"]).rename(\"l/100km\"))\n", + "fuel_all.head(2)" + ] + }, + { + "cell_type": "markdown", + "id": "17d09559-c563-43ba-8e0b-52c993bb36b1", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "... und den Verbrauch in der Grafik darstellen.\n", + "Dabei ändern wir gleich noch ein paar Parameter um zu zeigen, was es alles so für Möglichkeiten gibt." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "a9da9245-86f4-4cdb-9dce-3129bb204dc1", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fuel_all.plot(x=\"Datum\", y=\"l/100km\", figsize=(15,4), title=\"Verbrauch meines Autos\");\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "49454f16-873e-4802-9535-ad331f698742", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Box-and-Whisker-Plots\n", + "Auf einen Blick sehen, wie die Daten verteilt sind.\n", + "Wer erinnert sich noch an `describe()`?" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "95c4dddf-de31-425b-9bee-7221a0c9b7d5", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fuel_all.plot(kind=\"box\");\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "117cde42-698c-4d2d-841d-816772f6a422", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "Wenn sich die Werte in den Spalten voneinander unterscheiden ist es besser, wenn man die Daten einzeln visualisert:" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "395dd8c4-5c88-4bcf-b77f-06db4f8f92ab", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fuel_all[[\"Liter\", \"Preis_pro_l\", \"km_driven\", \"l/100km\"]].plot(kind=\"box\", subplots=True, figsize=(15,4));\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "215661fd-30c1-4fa3-98e4-fbbd991f0402", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Bar-Charts" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "7f8176ab-6239-49e3-bf03-831448411301", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "d.groupby(\"Typ\")[\"Preis\"].sum().plot(kind=\"bar\");\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "7d3bdb98-87cb-4990-9038-1f26a9bc49f9", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Pie-Charts" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "c30096be-6783-4f26-aa70-1bcf6e4c9d2c", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQoAAADnCAYAAADmZhghAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAkm0lEQVR4nO3deXxU1d3H8c9vJhOSsAxbgIDIyCYBEZAdXLGPttKqrWtrrbtd6IKtrXmqtrfaKtZa29oqSF1qrXZRW62xrhWKyENdQCgkAkoQTYCwZCAmJGRynj/upEZIMpMwM2dm7u/9euWVyeTOvb9A5ptzzz33HDHGoJRSHfHZLkAplf40KJRSMWlQKKVi0qBQSsWkQaGUikmDQikVkwaFUiomDQqlVEwaFEqpmDQolFIxaVAopWLSoFBKxaRBoZSKSYNCKRWTBoVSKiYNCqVUTBoUSqmYNCiUUjFpUCilYtKgUErFpEGhlIpJg0IpFZMGhVIqJg0KpVRMGhRKqZg0KJRSMWlQKKViyrFdgEq8UEmpDxgJFAN9gWAcH3lAHVB70McuYHv0Y0f08xbg7YoFc5tT9kMpq0QXKc5soZLS7sB4YCIwIfp5PNA9yYf+EFgDvNnqY13FgrkHknxcZYEGRQYJlZTmACcCM3FDYQJuyyFdTiEbgP/wUXC8AbxZsWBuJNWFiEgEWAsIEAG+box5NYH7/wpQZ4x5KFH7TGcaFGkuVFKaB5wGfA74DO6pRCbZCfwNeAx4qWLB3KZUHFREao0xPaKPTwe+b4w5KRXHzkYaFGkoVFLaC/g08FngUyT/NCJVdgNPAX8BXqxYMLcxWQc6KCjOAy4yxpwd/fq7wPlAN+CvxpgfikgI+AfwCjAL+AA4C+gDPNNq1+OB4cBlQK0x5mcisgRYCZwC9AauMMYsS9bPZoN2ZqaJUElpIXA2bjicCuRaLSg5+gKXRj9qQiWlf8dtaTxXsWBuQ4KPlS8iq3E7aYuAOQAichowCpiGe1rylIicCLwXff7zxpirROTPwDnGmIdx+30QkXnAScaYLSJy8PFyjDHTROQM4IfAJxL881ilQWFZqKR0GnANcC7e+v/oDVwc/dgXKil9FLi9YsHcTQnaf70xZiKAiMwEHhKRY3BP404DVkW364EbEO8Bm40xq6PPvwGEWnYmIrOBq4Dj2zneE229Llt46RczbUQ7Jc8B5gMz7FaTFnoCVwNXhEpKHwNurVgw961E7dwYs0JE+gOFuK2IW40xi1pvEz31aN2qiQD50e8VAfcBZxpjats5TEOr12Xd+ypdesu9wQnm4QS/viDn3r8Af0RD4mB+4AJgdaiktDRUUjo7ETsVkTHRfe8CngMuF5GW/oshIjKgg9cGcPtUrjPGbEhEPZlIgyIVnGB3nOC1wGbgrvP9S0/Mp6HOdllp7gzglVBJ6b9CJaWf6sLr80VkdbSf4k/AJcaYiDHmeeARYIWIrMXtI+nZwX5mAVOAH7XsT0QGd6GejKZXPZLJCfqAK4Cf4DZ7/+v+pk8uvanpS3q5Ln6rgAXAYzoiNPU0KJLFCU4Dfg1MbevbTcb3/tENvxsUwZ9157NJ9hrw1YoFc9+wXYiXaFAkmhPsj/uX73LcjrN23XLgC8vvjXw6IefhHtMMLASur1gwt8ZyLZ6gQZEoTtAPfAW4GXeQTkx1JvftsQ0PHp3UurLbduDaigVzH7ZdSLbToEgEJzgd9y/cxM6+9BuNX3/9782zpiS8Jm95BriqYsHcStuFZCsNisPhBAX4HvBjunjtfJfpuWpyw6JJCa3Lm2qA+RUL5v7OdiHZSIOiq5xgIfAQ8MnD3dUFDTesX2nGjj38ohTwNHB1xYK5VbYLySY6jqIrnOCJwGoSEBIAtwUWhxOxHwW4N9O9Hiop1dO5BNKg6Awn6MMJ3gj8E0jYoJthsn36KHm/IlH7UwwG/hUqKT3fdiHZQk894uUEBwEP497ZmXCrm0csO7vx5hOSsW+PuwlwKhbM1V/0w6Ating4wbG4A32SEhIAE+SdqQPYU52s/XvYD4A/h0pKC2wXksk0KGJxgjOAZcARyTyMCHm3BH67LpnH8LBzgWWhktIhtgvJVBoUHXGCpwMvkqLp5071rZrUnfp9qTiWBx0HvBad/0N1kgZFe5zghcDfSeE0dCIEr8/5w5upOp4HFQFLQyWlF9guJNNoULTFCc4D/gAEUn3oC/xLRgdoStpckoo84JFQSel5tgvJJBoUB3OCP8K969PKv41fmou+6n/y3zaO7SE+4OFQSWlCxsF4gQZFa07wx7i95FbNy3mqCPS6dZLlAo+HSkrbmwNTtaJB0cIJzgeut10GQDc5MOJ8/5LXbNfhAQXA06GS0om2C0l3GhQATvBi4Oe2y2jt+pw/5NuuwSOCwHOhktLRtgtJZxoU7iXQ+4kxyUyqBaVu/Im+t9bYrsMjBgAvhkpKh9ouJF15Oyic4HjcGZbTcjq6WwO/3W+7Bg8ZCrwQKiltd0ZuL/NuULj3bjxNxzMwWzWYXVPHSsU7tuvwkKNxT0PS9nfCFm8GhRPMxx1MdaTtUjoigvwssFDnVUiticA9totIN94MCrgTd62GtFcs700fQrWGRWpdFCopvdh2EenEe0HhBM8Gvmy7jHiJEFgQWOzZFaos+k2opHSE7SLShbfmo3CCg4E1QD/bpXSGMeyb0HBv8156BG3X4jGvAbMrFsw9YLsQ27zTonBX7fo9GRYSACL0dAIPrYq9pUqwqbgTJ3ued4ICrgXm2C6iq87yLR/XjUa9XJp63w2VlH7CdhG2eSMonOBkMvwvg19M4fycx/VmsdQT4KFQSWlhzC2zWPYHhRPsDjyKhVvGE+0K/zPDhGZdoDf1ioAHbBdhU/YHhTu56ijbRSRCrkSGXex/YaXtOjxqbqikdJ7tImzJ7qseTnAUsI4saE20qDV5649puF8XC7KjBhhVsWDuTtuFpFq2tyjuIItCAqCH7B97uu+11bbr8KjeuItQe072BoUT/ATwGdtlJMPNgQeabNfgYVeFSkrH2y4i1bIzKJygH3eYdlYaIDVTJsnGt23X4VF+4Be2i0i17AwKuBo4xnYRyXR7YNEu2zV42JxQSemZtotIpezrzHSCQWAT0N92KclkDJGTG39etcUMSurCRKpda4EJXlmqMBtbFDeS5SEBIIL/9sAinavCnvHAhbaLSJXsalE4wX7AVsAT800aQ93khnvqdxPMuPtXssRGYGzFgrlZ37mcbS2Kr+CRkAAQoeDmwINrbdfhYaOAS20XkQrZ06JwgrlABe5wW89oNrJ7XMP9efV009W67XgHdxBWlryR2pZNLYoL8FhIAPjE9P1ezh9ft12Hh40ATrFdRLJlU1BcY7sAWy72vzDcTyTrz5PT2FW2C0i27AgKJ3gyMMl2GbbkSPMRV/qf0ZvF7PlsqKQ0qzuUsyMoPNyaaDE/53FPz5dgWTfgS7aLSKbMDwr3DtFP2y7DtnxpHH2Wb7n2VdiT1acfmR8UcDnZ8XMcth8GHkrLFc88ojhUUjrbdhHJkg1vMM+Mjoulr+ybOMO3bp3tOjwsa1sVmR0UTnA6ELJdRjq5LWfxPts1eNh5oZLSrFxSIbODQlsThzhSdkwbLVs3267DowqAi2wXkQyZHhTn2i4g3Yjguz2w6H3bdXjYF20XkAyZGxTuFPx6i3UbjpV3pw1k9w7bdXjU1GxcDT1zgwI8NXFIZ4jQ7ZbAfett1+FROcAJtotINA2KLDXHt2pSd+q1Y9OOjF2Rrj2ZGRROcAgw0XYZ6UyE4A05D79puw6PyrqbxDIzKGCW7QIywfn+paMDNDXarsODJoZKSvvYLiKRMjUoptkuIBP4pbnoa/4ndb3S1PMBJ9kuIpEyNSim2y4gU3wt58nBkC2zE2WUrOqnyLygcNfsmGy7jEzRTZqGX+B/+TXbdXhQVvVTZF5QuOt16LRvnfD9nEc8M49oGhkXKikdYLuIRMnEoNDTjk4KSt34k32r19iuw2MEONl2EYmiQeERtwTua7BdgweNs11AomhQeEQRu6aMk82bbNfhMSHbBSRKZgWFOyV/se0yMpEI8rPAom226/CYkO0CEiWzggKGkHk1p40x8t70IVRX2a7DQ46yXUCiZNqbbojtAjKZCIHbAos32K7DQwaHSkoDtotIhEwLCr2t/DDN9v1ncpDaGtt1eIQfGGq7iETQoPAYEXo4gd+9ZbsOD8mK04+4gkJERohIt+jjk0XkmyLSO6mVtU2DIgHO8r06thuN+23X4REh2wUkQrwtiseBiIiMBO7FbU49krSq2qd9FAngE1N4Tc5jerNYaoRsF5AI8QZFszGmCfgscJcx5rvYWRBYWxQJcoX/H8OE5mbbdXiAd049gAMi8nngEuDp6HM2enM1KBIkIJFhX/I/r+uVJt+RtgtIhHiD4jJgJvATY8xmETkK+H3yympXXwvHzFrfy/lzb9s1eEBW3MAYV1AYY9YbY75pjHk0+vVmY8xtyS2tTZl2lSatdZf9xZ/0/XuV7TqyXPaPoxCRP0c/rxWRNa0+1oqIjbsRxcIxs9pNgQe0nyK5siIoYi1q+63o53RZLVyDIsEGSHjycbKh/E0zeoztWrJUru0CEqHDFoUxpir6eUv0qVHRxzuA3UmurS0aFEnw08AiG/+XXuGJFgUAInIVcDVuZ+II3KsPC4FTk1dam7SPIglGSNX0+96656md3Wbl7+43vnckUHAU+m+dEAayYm2VuIICmIc78/VKAGPMRhGxMc2XtiiSQAT/6KkrxhY+vskEymVUY6DnzqpB08u3DZxuPuw+aDTiK7RdY6YSjwVFgzGmUcR9n4pIDmBjZmcNiiQZ6msa+dI59S9M/UtB79wD+wqHbX2x/7CtL2LAhHsdVV45+Pjtu/odEzyQ030cIlnRnE6RrOgsjjcolorI94F8Efkf4GvA35NXVrs0KJLoYl/NnOvOKnj58r9xgoB7bw9I772bx/Teu3kMQJO/274dAya/WTloZuO+nsNCxufPirsjk6jOdgGJICaOJR/EbUpcCZyG+2Z9DvitiefFieQE9xP9BVbJsS43d+Mf3yus+sISc2I829cWFFVUDp69pbpwYkFDbu9xiGTFAKMEemXewjkZv2hxzBaFiPiBdcaYMcDi5JfUoWp0GHdSjWtsHNU4fv8HK6vylk5/28Rc7apHXVVo9KbHQqM3PUaz5DTs7D9+VWXRrL01wZGDm/25o1JRc5rLiitKMYPCGBMRkbdF5EhjzHupKKoDO9GgSLqfVO86ftZZQzYOXcyKwXuYGe/rfKap24DqVZMGVLuDPfd361NVWTTzne0Dpvrr8wuLsTM1gW17bBeQCPH2UfQB1onIv4EPW540xpyZlKraV53i43lSDuTct63af+nlA8bde1fzuoLGrk07n9ewp2h4xTNFwyuewSCRPb1H/6dy8PG7dvUt7hfx541FxAuXYL3Rooi6MalVxG+H7QK8Ynxj4+hTGuuXXHN1wdi7fxOp9BsGH87+BOPvW/P2MX1r3gbgQE73PdsGTi2vGjQjUttjyEjENyghhaef7G9RiEge8BVgJLAWuC86L4Ut71s8tufcWr1r9qxh+e/eeLGfnzwUqRXokah9B5o+7DP0gyUzh36wBIC9PY/cWFl0fGV1//G9DgR6jiU6o1oWiDnruYjcCWwxxvwi+vVzwFZjzJXRr+8APjDG/DyOfT0IPG2MeSyObc8GNhhj1sfaNlbT73fAFNyQ+BRwR6wdJtlWy8f3lAAEfrttB5sGM+KeM3zrTRLHBPTa996oMRseOemEV/930knLvh0pLnvotd41G5dKc1NFso6ZIpvj2GY5MAtA3NOx/nx8lbFZwKuxdhId39QZZwNj49kw1o7HGmPGR4u4D7A9fZrtzlTPmdDQePSpdfVLXppQcPKoSrP0f1bHvhJyuPzNjQVF21dOLdruzqtTl1+4tbJodsWOAcfl7u/WdywiPZNdQwJVxLHNq8Cd0cfjgP8ARSLSB3ccRjFgRGQpbqtuJ3CpMaZKRJYAq4HjgUdb71REbsadtvIK4CfAmUAT8DzwRPTrk0TkBuAcY8w77RUYKygOtDwwxjS1jMy0SFsUFvx0x85Zs4YdsXHxp/wnDd/WtGzENlI6LqCgvnroyHf/NnTku3+jWXwHdvUdt7qyaHZ4T5/RA5t9uUeTBr+Y7TgAbIm1kTGmUkSaRORI3NbDCtz5YWcCYaAMN0jOMsZUi8gFuG/8y6O7yDXGTIH/nnogIrcDPXEnneqLO43lGGOMEZHexpgaEXmKOE9TYgXFBBHZG30suCMz90YfG2NMr1gHSLANQAR3vQSVIrmQu2hbddOlRQOabviSf8aiuyKretUzyUYtPtMcKNy1dmLhrrUANOT2qq4aNGPDtoHTpK5g4NGIr5+Nutqxed7COfH26b2KGxKzgJ/jBsUs3KD4AHew4wvRTPTz8b6PPx20rxuBlcaYqwFEJAzsB+4Tkaf5aDrLuHUYFMaY9HpDOuE6nGA5WbRKdKaY3NBQfHJd/ZIl3QtOnv9l/1GL7opUBCL2Z5ju1ri3MPTe84Wh957HIM01wRHrKwfP3rGr77i+TTkFY+n8eXsidWZVtpZ+ivG4px5bge8Ae4ElwBBjTHtjWj486OvXgMki0tcYszt6NjAN927vc4GvA3M6UVvcl0fTyetoUFhxh3sKsqk23zfyusv8NXf8NrJH3DE2aUEwvj7hTWP7hDeNBTjgzw9vHzilvGrQjMbaHkOHG58/1cs9rO7Etq8C1wLvGmMiwO7o2jnjgC8D3xCRmcaYFeLelDfaGLOunX09i3ubRamInIZ7A2eBMeYZEVkOvBvdbh/u6UlMmRoUl9guwotyIfee7dWNlw8aEHm/UEI/+5xv1bVPNPeQNJ2cJRCpDx5RuWz6EZXLANjXfci7lYNnb63uP6F7Y25wHCL5SS7htU5suxb3ascjBz3XwxizQ0TOBX4lIkHc9+0vgPaCAmPMX8Tt9H0K+ALwZHS4gwDfjm72R2CxiHwTOLejzsy4bgpLK05wOvB/tsvwsq8NLFyyrCD/ZIDz/xVZdu5yk3E3PUV8Oft39p+wrrJodm04OPyIZl9gRBIOUzRv4ZxtSdhvymViUOThnrel5V8xL2iEhpnDhr7f6JMRANc/Glk6oSL5l02TqT6vb2Vl0ex3dgyYHKjP61+M+5f7cLw/b+GcrLkFP/OCAsAJrgIm2i7Dy1bmdVt35aABYxDxizHNv7k78nr/vUyzXVciNIuvaU/vo9d/MPj4PXv6jCmM+LuN6cJ9KX+dt3DO55JSoAWZ2EcBbj/FRNtFeNn0/Q3jZtXvX/pqQf5JRsT37av8Yxf/MvJ2tyaOtl3b4fKZ5px+e8qO7benDIDGQI9d2wZOf7tq0HTzYfeiUYgvnmkgbQ9OTKhMbVFcDSyyXYbXNQj7Zw4bWnXAXTmOwhpTedfCSI7PYGM+1ZQwYPb2Cm2sLDq+cme/8b0PBNqdGnDGvIVzsmbJxkwNimHENzRWJdny/Ly1XxlYOK6laT5uS/O6HzzSPFwg2VcU0kKTv1vtjsLj1lcVzdy/t+ewkPHlHAnUAP3nLZwTsVxewmRmUID2U6SRKwcNWLoyP++/nZmffL15xWUvNM8QD85x+mHBwC3bB0z929xnb59vu5ZEyuSJQ/5muwDl+vX26mk5Hy0SxbNTfDOXj5WlNmuypXvd9mHDK55ea7uORMvkoPir7QKUK8+Y/F9trw5jzH9vQ//VWf6T3+/Hcpt1WWKAZ2wXkWiZGxROeA0fDUVVlp1Qv//YKfsblrV+7nuX+6d82I2s++saw5vF5WUxJ6vJNJkbFK4nbRegPnL39uqprU9BmnKk2/yr/YOafJ6ameyR2JtknkwPCj39SCP5xhTcuWPnHlr1kId7SOH1l/j3G3c0bbaLoEGRlpajM3OnlZPr6idOavj4KcjmQTLy15/xbTDuGymbvVRcXpYV93YcLLODwgk3AzFn51Gpdc+26sk5xnxsNrJlx/imPDtZXrFVU4r83nYByZLZQeH6te0C1Md1N6b7z3bs3MlBg3QeOM1/0ttD+JetupLsQ7L4VDjzg8IJrwdesl2G+rhT6+onHdvQuOzg53/4Rf+smu68YaOmJHuiuLzs4JmmskbmB4XrV7YLUIdatG3HJL8xH7vi0eyTnPlX+0c2+ml3kpQMdZftApIpW4LiaXRMRdrpYUzPn+7YecjqbnV5EvzuFf5AM+yyUVcSLCsuL+vMbFYZJzuCwu3U1L6KNHRaXf1x4w66CgJQ1U+OvO083/sGGm3UlWAxV/DKdNkRFK77gVrbRahDLa7aMcFvTOXBz68a6ZvwpxN9mT5vwybceSmzWvYEhRMOAw/ZLkMdqqcxvW6p3nVIUAA8Mdt3/JsjMvoGsjuLy8uSttRiusieoHD9kiSuj6m67owP66YUt3EVBGDBeb4TtwczcsLkncCDtotIhewKCie8AW1VpK3fbtt+rM+YQ2+YEpHvXOU/dn+AMgtlHY6fFJeX1dkuIhWyKyhcP8BdPk2lmV7NJnjzzl1t3iDWGJCCa67y94kImTIEejNwt+0iUiX7gsIJbwV+Y7sM1bYza+umjm5obHMo966gDHIu8u8x7gre6e6G4vKybLhiE5fsCwrXLcAe20Wott2/bft4nzFtthzeHirFi0/3rTHuBDDp6k3gUdtFpFJKgkJEals9PkNENojIsC7u63YRWRdd1r1tTng34HRl/yr5gs0m+KOdu99r7/svHueb8a9jJJ3vCbmuuLwsnYMs4VIyua6I1BpjeojIqbjT7J/e0TqHMfYVBvpGF3JtnxPMwV0kVhc0TlNnDxm0/J3c3Nntff/2+5peGbaD41NZUxyeKS4vm2u7iFRL2amHiJwILAY+3RISInKViLwmIm+JyOMiUhB9/sHooqwtr62Nfn4K6AG8ISIXdHhAJ9wEzE/KD6MS4sGqHWN9xhwyxLvF/17qn7Yvj7dSWVMMdcA820XYkKqg6IY7a/bZxpjyVs8/YYyZaoyZAJQBV3S0E2PMmUC9MWaiMeZPMY/qhF8E/tzlqlVS9W5u7nPjzt2b2/t+k19y53/ZP7TJx5b2tkmxm4rLyypsF2FDqoLiAPAqhwbBMSKyTETWAheRnNOErwFtjgpU9p1b++H0oxoPvNre9/cVSN+Sy/wRA+FU1tWGVcAdlmuwJlVB0QycD0wTke+3ev5B4OvGmPHAj4C86PNNLbWJuwJVbpeP7IR3AZeS3r3onva7qu1jxJh2pzR8b4AM/8XZvk3G/b2w4QBwWXF5WbvHF5GXReT0g56bLyL3dPWgInKmiJR08P2QiPynq/vvjJT1URhj6oC5wEUi0tKy6AlUibt240WtNq8AJkcfnwm0tbZj/JzwC+icFWmrT3Nz3+t37emwc3tFsW/y36dLuy2PJLu1uLwsVl/Jo8CFBz13IXFcRhURf1vPG2OeMsYsiK/E5ErpOApjzG7gk8ANInImcCOwEneS3NZ9F4uBk0TkLWAm7jRjh6sESEn6qs67YF/tjGEHDqzoaJuH5/hPXD805VPpvQLcHMd2jwFzRSQX3L/2wGAgX0RWiMibIvIXEekR/X6FiNwmIm8C54nIN0VkvYisEZE/Rre5VER+HX08UET+Gu34f0tEZkWP6xeRxdEhA8+LSFLWfM3ctUe7wgkei7scfTfbpahD7fL5dp5y5BCMSP/2tvE1m8jdv4ms6lvLlBSUVA1MKi4v+yCejUXkaWCxMebJ6CnDSGA08CljzIcich3QzRhzk4hUAHcbY34afW0lcJQxpkFEehtjakTkUmCKMebrIvInYIUx5hfRFkgPoA/ube5TjDGrReTPwFPGmIcT+q9A9o7MbJu7utgNtstQbevX3Nz/e7v3bOxom2af+K+5yj+6IYcOt0sAA1wcb0hEtT79uBDYCowFlovIauASoPVAw9ZX7tYAfxCRL9J2X8wc4B4AY0zEGNPSubvZGLM6+vgNINSJeuPmraBw3YFOxpu2vri3duYRBw50eMt5fZ70uvYKf36zJHVNl1uKy8ue6+RrngROFZHjgALcod4vRC/nTzTGjDXGtL7y1/qUei7uPUrHAa+JSE6cx2xo9TgCxPu6TvFeUDhhg3sF5m3bpai2/b5q+whx+7Patb2vHHHL+b5t5uNvlERZAvywsy8yxtQCL+POtvYo8H/AbBEZCSAi3UVk9MGvi17ZG2qMeRm4Dgjinlq09hLw1ej2fhEJdra+w+G9oICWe0HOANodFajs6R9pLvzO7pryWNutGe4b/4dTfK8n+PDvAhcUl5d1dVWzR4EJwKPGveR7KfCoiKwBVgBj2niNH3g4Op5oFfArY0zNQdt8Czglus0buKc0KeOtzsyDOcHpuH8BktJTrA7P6UcMXlkZyJkea7vvPB5ZOn2DOSkBh9wFzCouL9uQgH1lFW+2KFo44ZW44zd0+rw09Puq7UeJMTGnC7jjc74TK/vQ4aXVOOwHztSQaJu3gwLACf8VuNZ2GepQAyKRAd/aE449PZ6IfO8K/8S6XNZ18VDNwEXF5WW2BnSlPQ0KACd8J1m+0lOmuiK8d9agpqaYU/o3BiT/mqv9hRHp0n093ykuL3uiC6/zDA2Kj8xH7zRNSw9Xbh8mh3buHWJPTxlw48X+faZz67t8v7i87BddLs4jNChauKuNfQH30pZKIwMjkYHz9oTjOq3YNESOXniGb72Jr9/p2uLyslsPszxP0KBozQlHgCvxwBJxmebL4b2zBzQ1xbW+58sTfNNemihtriHSyreKy8s8e9t4Z3n78mhHnOCNwE22y1AfqfL7q04bOriAOAcb3fpA07IR2zjhoKcNMK+4vKzLt397kbYo2uOEbwa+ic5jkTaKIpGir9bsXRvv9jd8yT9jbz6rWj3VBFypIdF52qKIxQl+Cbffos05A1TqzRk6+PXqnJy47h7tUW9qFt0VqQlE6AucV1xe9nySy8tK2qKIxQk/BJxDYubEUAnw+6rtgzFmbzzb1uZL7+9f4q8ETtCQ6DoNing44SeBGbj3/ivLhjRFBl8V3hvv7NwrtgyUzxWXl61JalFZToMiXk74P8AU4O+2S1HwzT3hE/o1Rd6IsdlC4JS1l6zdnoqaspn2UXSWExTcafVuIkn3/qv4bM3Jef+MI4qCiPQ86Fu1wFfWXrL2DzbqykYaFF3lBGcBj/DxGYtUit3Zp/ey+3v3an0JdBVw4dpL1urNXQmkpx5d5YRfBSYCj1uuxNPm76k5vk8ksgp3JObtwEwNicTTFkUiOMHzgTtxZ11WKfZOIOdfZx8x+H/XXrI2rrs/ReR63OH6EdyA+TLubO/3RpeVUAfRoEgUJ9gTdxGjb6B9F6lyALgN+DFOOK4p8URkJu4Q/ZOjM173x11g6lXc2ax3JqtYEckxxthaxOiw6KlHojjhfTjhb+MuXLTcdjkesBI4Did8Y7whEVUE7DTGNABEg+Fc3NbgyyLyMoCInNbBehz9o4+niMiS6OPuInK/iPxbRFaJyFnR5y8VkadE5J/AS9GvnxCRZ0Vko4j8NDH/HMmlQZFo7pIAJwCXA0n76+Rhm3BnJZsZvWTdWc8DQ0Vkg4jcLSInGWN+hbs+7SnGmFOiQXAD8AljzHHA68C3Y+z3euCfxphpwCnA7SLSPfq944BzjfnvdH0TgQuA8cAFIjK0Cz9HSmkTORncmb4fwAk+ibvK1JUczvqpCuB93EvSD+CEu9x8N8bUishk3DA/BfhTG+t7zuCj9TjA/b+LNdXeacCZItIyW1oecGT08Qvm47OKv9SyLoeIrMe9cra1iz9SSmhQJJM72/c8nOAtuNPtXY273oOKXzVwK3B3J08x2mWMieBOyb8kOqv1JQdtIrhv7s+38fL/LqDNR4tqt7zmHGPMx5aBEJHpHDr8PyVrcSSSnnqkghP+ACd8De5fjh8DNXYLyghh4AfAcJzwnYkKCRE5WkRGtXpqIrAF2Ie7aDZ0vB5HBR8toH1Oq/08B3xDok0QEZmUiHrThQZFKjnhnTjhG3GbpNcB2yxXlI7KcPsDjsIJ34wT7sy0dvHoAfyuZUFg3FMMB7gXeFZEXo6xHsePgF+KyOu4rYEWNwMBYI2IrCO+hY0zhl4etckJ5uE2ey8DYq5fkcX2464Gfi9OONbMVMoCDYp04QRH4g4Cugh3BWwvWA8sBh6K9ueoNKVBkY6c4GTcwLgQ97p/NnkX+AfwR5zwK7aLUfHRoEhnTtCHewnvs8CptL1uZbqrB5bihsM/cMIbLdejukCDIpM4wcG4gXEKMAs42m5B7doAPIsbDktxwvWW61GHSYMikznBfriDg2bi9t6PiH507+hlCbQfNxTW4N7e/SawGidck6LjqxTRoMhGTnAgMJyPgmMEcBTQC3eQUH70c8tH4KA97AV2Rz92tXq8G3cA1Ebcy5hbogsnqSynQaFa+kLycIcq1x7OEGmVnTQolFIx6chMpVRMGhRKqZg0KJRSMWlQKKVi0qBQSsWkQaGUikmDQikVkwaFUiomDQqlVEwaFEqpmDQolFIxaVAopWLSoFBKxaRBoZSKSYNCKRWTBoVSKiYNCqVUTBoUSqmYNCiUUjFpUCilYtKgUErFpEGhlIpJg0IpFZMGhVIqJg0KpVRMGhRKqZg0KJRSMf0/2azKMM1szaoAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "d.groupby(\"Typ\")[\"Preis\"].sum().plot(kind=\"pie\");\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/jupyter_book/Makefile b/jupyter_book/Makefile new file mode 100644 index 0000000..2674dfc --- /dev/null +++ b/jupyter_book/Makefile @@ -0,0 +1,14 @@ +all: html pdf + +# Mit Copy&Paste eingefügte Bilder werden im Notebook BASE64 kodiert gespeichert. +# Für LaTeX müssen diese als Bild-Datei vorliegen was jupyter-book nicht kann +# -> selber die Bilder extrahieren +preprocess: + ./extract_attachments.sh + +html: preprocess + jupyter-book build . +pdf: preprocess + jupyter-book build --builder pdflatex . +clean: + rm -rf _build diff --git a/jupyter_book/_config.yml b/jupyter_book/_config.yml new file mode 100644 index 0000000..8b94ade --- /dev/null +++ b/jupyter_book/_config.yml @@ -0,0 +1,22 @@ +# See https://jupyterbook.org/customize/config.html + +title: Data Science mit Python +author: MARS – Center for Entrepreneurship +email: c.giess@hs-mannheim.de +copyright: "2022" +logo: logo_mars.png + +only_build_toc_files: true + +execute: + execute_notebooks: force + +latex: + latex_documents: + targetname: python_data_science.tex + +sphinx: + extra_extensions: + - sphinx_jupyterbook_latex + config: + language: German diff --git a/jupyter_book/_toc.yml b/jupyter_book/_toc.yml new file mode 100644 index 0000000..4347562 --- /dev/null +++ b/jupyter_book/_toc.yml @@ -0,0 +1,8 @@ +format: jb-book +root: intro +chapters: +- file: 01_wiederholung +- file: 02_mehr_zu_funktionen +- file: 03_matplotlib +- file: 04_pandas +- file: 05_pandas_visu.ipynb diff --git a/jupyter_book/car.csv b/jupyter_book/car.csv new file mode 100644 index 0000000..be44d94 --- /dev/null +++ b/jupyter_book/car.csv @@ -0,0 +1,233 @@ +Datum Typ Beschreibung Preis km Liter +2012-07-07 Kauf Autohaus 13800.00 30 +2012-07-10 Benzin ESSO 57.01 199 34.89 +2012-07-11 Versich Haftpfl. 104.30 400 +2012-07-23 Benzin Kaufland 55.03 828 34.20 +2012-08-10 Benzin Kaufland 56.72 1444 35.47 +2012-08-23 Steuern Kfz-Steuer 50.00 1500 +2012-09-10 Benzin AVIA 60.80 2061 36.87 +2012-09-14 Benzin OMV 61.10 2710 36.83 +2012-09-19 Benzin Tango 56.85 3328 32.03 +2012-09-21 Benzin ARAL 52.30 3837 30.78 +2012-10-06 Benzin Kaufland 52.01 4396 31.73 +2012-10-23 Benzin ARAL 53.20 4996 33.27 +2012-11-05 Benzin Kaufland 52.12 5571 33.65 +2012-11-12 Benzin Unbekannt 41.72 6070 29.44 +2012-11-17 Benzin AVIA 54.39 6629 33.49 +2012-11-27 Benzin Kaufland 51.65 7219 33.78 +2012-12-14 Kauf Winterreifen 496.68 7300 +2012-12-21 Benzin JET 44.06 7712 28.08 +2012-12-21 Benzin BP 46.05 8182 29.73 +2012-12-29 Benzin SHELL 47.35 8656 30.18 +2012-12-29 Benzin ESSO 47.13 9187 31.65 +2013-01-01 Versich Haftpfl. 374.26 9600 +2013-01-22 Benzin Kaufland 52.00 9752 34.70 +2013-02-12 Benzin ARAL 52.01 10317 32.73 +2013-02-28 Benzin ESSO 52.05 10894 34.04 +2013-03-21 Benzin ESSO 52.10 11436 33.85 +2013-04-05 Benzin ARAL 51.10 11888 30.99 +2013-04-06 Benzin Total 47.80 12398 30.86 +2013-03-20 Benzin ESSO 38.90 12837 25.95 +2013-06-02 Benzin AVIA 49.16 13394 31.33 +2013-06-09 Benzin ESSO 52.70 14005 32.96 +2013-07-08 Steuern Kfz-Steuer 50.00 15300 +2013-07-22 Benzin ESSO 35.20 14730 22.58 +2013-07-23 Benzin ESSO 57.06 15262 35.03 +2013-09-08 Benzin ESSO 51.61 15833 31.30 +2013-09-17 Benzin Kaufland 50.02 16387 32.93 +2013-10-21 Benzin JET 49.71 16949 34.07 +2013-11-08 Benzin ESSO 47.50 17501 33.01 +2013-11-13 Benzin Star 47.80 18056 32.76 +2013-11-17 Benzin ARAL 49.30 18644 31.62 +2013-11-25 Benzin ESSO 47.89 19158 33.28 +2013-12-21 Benzin ARAL 29.95 19502 19.21 +2013-12-23 Benzin OMV 34.28 19838 21.99 +2013-12-26 Benzin ARAL 36.81 20204 23.46 +2013-12-28 Benzin Kaufland 52.00 20706 34.92 +2014-01-02 Versich Haftpfl. 366.76 21000 +2014-01-28 Benzin ESSO 48.20 21264 33.97 +2014-03-05 Benzin ESSO 51.33 21828 34.24 +2014-03-22 Benzin ESSO 51.79 22407 33.65 +2014-05-02 Benzin Globus 47.31 22956 31.35 +2014-05-11 Benzin ESSO 48.14 23530 31.69 +2014-05-15 Benzin ESSO 50.08 24150 33.63 +2014-06-23 Benzin KK 50.00 24777 33.58 +2014-07-08 Steuern Kfz-Steuer 50.00 25000 +2014-07-11 Benzin Globus 45.46 25297 30.53 +2014-08-09 Benzin Globus 48.25 25911 33.53 +2014-08-24 Benzin Tankcenter 47.01 26435 31.36 +2014-09-13 Benzin AVIA 54.25 27041 35.48 +2014-10-06 Benzin ESSO 40.02 27502 27.43 +2014-10-08 Benzin Avanti 40.40 27998 28.88 +2014-10-22 Benzin ESSO 47.01 28594 33.60 +2014-11-11 Benzin BFT 47.00 29169 33.36 +2014-11-13 Benzin Total 49.15 29689 33.12 +2014-11-18 Benzin UNO-X 43.36 30171 27.70 +2014-11-22 Benzin ARAL 45.77 30716 31.16 +2014-11-23 Benzin ARAL 38.76 31135 26.03 +2014-11-29 Benzin SHELL 45.39 31651 33.65 +2014-12-17 Benzin ESSO 39.81 32146 31.87 +2014-12-25 Benzin ARAL 40.80 32637 31.41 +2014-12-27 Benzin ESSO 41.00 33212 32.83 +2015-01-02 Versich Haftpfl. 392.05 33500 +2015-01-26 Benzin Kaufland 40.20 33735 31.43 +2015-02-22 Benzin Globus 41.66 34242 33.09 +2015-03-15 Benzin ESSO 45.02 34846 31.95 +2015-04-19 Benzin Globus 49.37 35439 35.54 +2015-06-30 Werkst Autohaus 450.44 35900 +2015-07-06 Steuern Kfz-Steuer 50.00 35910 +2015-07-13 Benzin Kaufland 48.35 35983 32.04 +2015-08-15 Benzin Real 39.99 36497 29.00 +2015-09-08 Benzin Kaufland 43.72 37110 33.66 +2015-09-22 Werkst Autohaus 5.59 37200 +2015-11-02 Werkst ATU 17.60 37400 +2015-11-26 Benzin JET 39.26 37650 31.43 +2015-12-21 Benzin JET 34.56 38111 29.07 +2016-01-02 Versich Haftpfl. 240.37 38500 +2016-01-20 Benzin ARAL 40.28 38650 33.32 +2016-01-25 Benzin Kaufland 37.22 39200 31.04 +2016-02-01 Benzin JET 38.73 39700 33.42 +2016-03-07 Benzin AVIA 39.20 40233 33.25 +2016-03-19 Benzin JET 34.40 40800 30.20 +2016-03-20 Benzin Total 41.50 41331 33.77 +2016-03-23 Benzin ESSO 40.80 41915 35.51 +2016-04-21 Benzin ESSO 39.00 42490 33.08 +2016-05-02 Benzin Total 45.50 43109 33.73 +2016-05-02 Benzin ESSO 41.30 43651 32.29 +2016-05-16 Benzin Globus 40.60 44186 34.12 +2016-06-10 Benzin Unbekannt 0.00 44736 33.00 +2016-06-18 Benzin BFT 41.66 45293 33.32 +2016-07-06 Steuern Kfz-Steuer 50.00 45600 +2016-07-07 Benzin SHELL 36.54 45679 29.49 +2016-07-08 Benzin Kaufland 25.54 45911 20.13 +2016-07-09 Benzin SHELL 38.83 46302 29.89 +2016-07-09 Benzin ESSO 36.92 46629 27.37 +2016-08-02 Benzin SHELL 35.61 47033 29.21 +2016-08-10 Benzin Tankcenter 40.69 47633 33.16 +2016-08-23 Benzin Globus 38.06 48214 33.16 +2016-09-15 Benzin Kaufland 48.51 48872 37.93 +2016-09-17 Benzin Kaufland 34.00 49323 25.78 +2016-09-18 Benzin AGIP 32.80 49714 24.87 +2016-09-25 Benzin Avanti 23.70 50017 20.45 +2016-10-01 Benzin JET 42.00 50609 32.33 +2016-10-26 Benzin Oil 39.91 51173 31.70 +2016-11-14 Benzin JET 39.19 51713 32.15 +2016-12-09 Benzin KK 44.18 52308 35.09 +2017-01-02 Versich Haftpfl. 227.29 52850 +2017-01-02 Benzin SHELL 46.40 52866 32.47 +2017-01-20 Benzin KK 43.46 53414 33.98 +2017-02-03 Benzin Unbekannt 42.40 53984 32.64 +2017-02-18 Benzin JET 46.80 54608 33.45 +2017-03-08 Benzin SHELL 41.85 55189 32.22 +2017-03-18 Benzin Kaufland 34.12 55635 26.47 +2017-04-11 Benzin Oil 43.45 56199 32.94 +2017-04-18 Benzin SHELL 38.00 56681 28.59 +2017-04-24 Benzin Globus 43.51 57228 34.29 +2017-05-30 Benzin Real 46.78 57868 36.01 +2017-06-13 Werkst Autohaus 272.26 58100 +2017-06-17 Benzin AVIA 41.90 58490 32.01 +2017-07-06 Steuern Kfz-Steuer 50.00 59000 +2017-07-08 Benzin ARAL 46.36 59098 33.38 +2017-07-24 Benzin SHELL 47.17 59700 31.47 +2017-07-28 Benzin ESSO 29.40 60072 20.29 +2017-08-08 Benzin Oil 44.11 60692 34.32 +2017-08-21 Benzin Kaufland 44.01 61280 34.14 +2017-08-31 Benzin Tankcenter 19.11 61564 14.62 +2017-09-01 Benzin SHELL 34.55 62009 25.42 +2017-09-05 Benzin ESSO 38.00 62452 28.17 +2017-09-23 Benzin Tankcenter 44.50 63010 34.31 +2017-10-21 Benzin Kaufland 45.40 63652 34.42 +2017-11-08 Benzin Real 43.94 64305 33.57 +2017-11-16 Benzin Real 46.12 64905 34.77 +2017-11-25 Benzin Autohof 45.30 65480 32.85 +2017-12-14 Benzin Real 45.32 66071 34.62 +2017-12-24 Benzin AVIA 27.50 66460 20.54 +2017-12-17 Benzin Star 33.00 66873 24.83 +2018-01-02 Versich Haftpfl. 234.86 66350 +2018-01-08 Benzin JET 43.71 67478 33.39 +2018-01-22 Benzin JET 43.05 68022 32.89 +2018-02-13 Benzin ARAL 43.30 68571 32.34 +2018-03-08 Benzin ARAL 46.00 69131 33.60 +2018-03-20 Benzin Globus 45.00 69699 33.61 +2018-04-16 Benzin JET 47.22 70312 35.53 +2018-04-28 Benzin AVIA 41.21 70860 30.10 +2018-05-14 Benzin JET 44.30 71426 31.22 +2018-05-26 Benzin AVIA 39.85 71928 27.31 +2018-06-19 Benzin Oil 47.83 72577 33.71 +2018-06-27 Benzin SHELL 14.90 72745 10.14 +2018-06-29 Benzin KK 45.70 73281 32.90 +2018-07-06 Steuern Kfz-Steuer 50.00 73880 +2018-07-28 Benzin JET 46.60 73898 33.07 +2018-08-21 Benzin JET 46.67 74469 32.43 +2018-09-10 Benzin Globus 45.67 75018 30.67 +2018-09-27 Benzin Unbekannt 39.01 75486 26.92 +2018-10-10 Benzin AVIA 55.00 76069 35.74 +2018-11-03 Benzin JET 51.52 76682 33.26 +2018-11-21 Benzin Total 52.30 77227 34.43 +2018-11-30 Benzin Globus 48.82 77793 32.14 +2018-12-19 Benzin Globus 50.24 78378 34.67 +2019-01-02 Versich Haftpfl. 221.26 78700 +2019-01-10 Benzin HEM 27.70 78758 21.49 +2019-01-22 Benzin JET 44.80 79209 35.03 +2019-01-31 Benzin JET 32.80 79664 25.25 +2019-02-16 Benzin AVIA 36.90 80141 28.19 +2019-03-01 Benzin JET 44.61 80700 34.34 +2019-03-16 Benzin Tankcenter 39.65 81255 31.05 +2019-03-23 Benzin Tankcenter 40.87 81763 30.57 +2019-03-24 Benzin Bavaria 44.00 82273 33.61 +2019-03-28 Benzin Total 46.80 82926 34.44 +2019-04-14 Benzin Globus 47.37 83504 33.62 +2019-05-17 Benzin ESSO 49.30 84043 33.56 +2019-06-13 Benzin Unbekannt 49.18 84644 33.48 +2019-06-26 Benzin Globus 37.80 85139 27.61 +2019-07-01 Benzin ARAL 48.68 85773 33.54 +2019-07-06 Steuern Kfz-Steuer 50.00 86000 +2019-07-17 Benzin Oil 43.68 86317 31.91 +2019-08-15 Benzin JET 27.60 86644 20.16 +2019-08-17 Benzin ESSO 44.25 87131 31.63 +2019-08-18 Benzin SHELL 29.50 87441 21.24 +2019-09-11 Benzin Tankcenter 46.94 87997 33.84 +2019-09-29 Benzin JET 46.70 88606 34.36 +2019-10-14 Benzin ARAL 37.70 89138 27.54 +2019-10-23 Benzin ARAL 39.31 89682 29.58 +2019-10-31 Werkst Glühlampe 9.99 90000 +2019-11-11 Benzin ARAL 43.70 90305 32.88 +2019-11-16 Benzin SHELL 40.21 90789 28.74 +2019-11-17 Benzin Star 19.00 91018 13.68 +2019-11-19 Benzin JET 43.50 91553 32.98 +2019-12-05 Benzin Oil 42.73 92128 32.15 +2019-12-22 Benzin Elf 45.00 92653 32.87 +2020-01-02 Versich Haftpfl. 220.76 93000 +2020-01-17 Benzin Globus 42.90 93171 32.04 +2020-01-24 Benzin Kaufland 40.95 93726 30.58 +2020-02-12 Benzin Tankcenter 43.99 94283 33.66 +2020-03-05 Benzin SHELL 43.00 94838 33.62 +2020-04-25 Benzin Kaufland 38.80 95413 35.63 +2020-05-29 Benzin Kaufland 28.50 95907 25.93 +2020-06-26 Benzin Total 34.25 96456 27.87 +2020-07-06 Steuern Kfz-Steuer 50.00 96500 +2020-07-31 Benzin Total 33.20 96965 28.40 +2020-08-31 Benzin Globus 39.75 97514 33.15 +2020-09-16 Benzin Globus 36.21 98064 29.46 +2020-09-22 Werkst ATU 34.30 98230 +2020-10-14 Werkst ATU 90.38 98445 +2020-10-18 Benzin Tankcenter 42.66 98552 32.64 +2020-11-30 Benzin Total 42.10 99114 34.82 +2020-12-16 Benzin Total 37.65 99678 32.77 +2020-12-30 Benzin AVIA 32.90 100125 25.52 +2021-01-04 Versich Haftpfl. 214.11 100300 +2021-02-27 Benzin Kaufland 47.71 100641 33.86 +2021-04-13 Benzin Tankcenter 48.01 101250 33.88 +2021-05-04 Benzin Total 51.00 101854 30.25 +2021-05-25 Benzin JET 49.61 102414 33.32 +2021-06-14 Werkst Scheibenwischer 31.98 102600 +2021-06-16 Werkst Sommerreifen 270.00 102600 +2021-06-19 Benzin AVIA 40.01 102876 27.05 +2021-07-06 Steuern Kfz-Steuer 50.00 103000 +2021-07-21 Benzin Kaufland 46.80 103443 30.00 +2021-08-12 Benzin Globus 50.96 104026 32.07 +2021-08-28 Benzin AVIA 47.10 104552 29.27 +2021-10-09 Benzin Kaufland 55.10 105147 33.97 +2021-10-19 Benzin JET 40.10 105623 24.32 +2021-12-04 Benzin JET 53.30 106186 34.19 +2021-12-25 Benzin AVIA 51.42 106727 31.96 diff --git a/jupyter_book/extract_attachments.sh b/jupyter_book/extract_attachments.sh new file mode 100755 index 0000000..13c6e1f --- /dev/null +++ b/jupyter_book/extract_attachments.sh @@ -0,0 +1,12 @@ +# Extrahiert aus Python-Notebooks alle mittels Drag&Drop inkludierten Bilder. +awk ' +/"attachments"/ { + getline; + gsub(/[":]/,"",$1) + file=$1; + getline; + gsub(/^[^:]*: "/, "") + sub(/"/, "") + system("echo " $0 " | base64 -d > _build/latex/attachment:"file) +}' *.ipynb + diff --git a/jupyter_book/intro.md b/jupyter_book/intro.md new file mode 100644 index 0000000..747b1a8 --- /dev/null +++ b/jupyter_book/intro.md @@ -0,0 +1,23 @@ +# Digital Basics: Data Science mit Python + +Dieser Kurs richtet sich an +* alle, die an „Digital Basics: Einführung in die Programmierung mit Python“ teilgenommen haben +* sowie Personen, die ein bisschen Python programmieren können +und jetzt lernen möchten, wie man Daten mit Hilfe von Python auswerten kann. + + +# Kurzvorstellung + +* Wer bin ich? +* Wer seid ihr und was wollt ihr am Ende des Kurses machen? + + +# Los gehts + +* Jupyter + * https://jupyter.org/try-jupyter/lab/ + * Notebook Pyolite + * Python im Webbrowser + * Input-Zeile bedienen + * Python Programm (Code) und Dokumentation ([Markdown](https://de.wikipedia.org/wiki/Markdown)) + diff --git a/jupyter_book/jupyter_help.png b/jupyter_book/jupyter_help.png new file mode 100644 index 0000000..ea53977 Binary files /dev/null and b/jupyter_book/jupyter_help.png differ diff --git a/jupyter_book/logo_mars.png b/jupyter_book/logo_mars.png new file mode 100644 index 0000000..eeba023 Binary files /dev/null and b/jupyter_book/logo_mars.png differ diff --git a/jupyter_book/requirements.txt b/jupyter_book/requirements.txt new file mode 100644 index 0000000..7e821e4 --- /dev/null +++ b/jupyter_book/requirements.txt @@ -0,0 +1,3 @@ +jupyter-book +matplotlib +numpy diff --git a/jupyter_book/upload_file.png b/jupyter_book/upload_file.png new file mode 100644 index 0000000..2058464 Binary files /dev/null and b/jupyter_book/upload_file.png differ diff --git a/python_data_science.pdf b/python_data_science.pdf new file mode 100644 index 0000000..50a1591 Binary files /dev/null and b/python_data_science.pdf differ