{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "

Einführung tabellarische Daten

\n", "

DSAI

\n", "

Jakob Eggl

\n", "\n", "
\n", " \"Logo\"\n", "
\n", " © 2024/25 Jakob Eggl. Nutzung oder Verbreitung nur mit ausdrücklicher Genehmigung des Autors.\n", "
\n", "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Allgemeines" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Viele Daten sind in tabellarischer Form\n", "* Gespeichert oft in csv, txt oder in zBsp. Datenbank\n", "* Einfach zu interpretieren\n", "* Gute Skalierbarkeit\n", "* Einfacher Austausch zwischen verschiedenen Systemen und Plattformen\n", "* Einfache Sortierung, Filterung, Aggregierung" ] }, { "cell_type": "markdown", "metadata": { "vscode": { "languageId": "plaintext" } }, "source": [ "## Aufbau und Eigenschaften" ] }, { "attachments": { "image.png": { "image/png": "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rXr6t3/7t+qf//mf67+77rprpjhRJng5rbJNszDKO3W2mg74ctRRR1WPfvSjq/vc5z7Vt771rcEXv9SuBp9pZ9AIGAEjYASMgBEwAkbACBgBI2AEjIARMAI9EMBW9cQnPrE644wzerzloAtBYNU4sP/3f/+3+spXvlK97GUvq+51r3tVD3vYw6r999+/+s1vfrMQ3PzO/yPwox/9qNpiiy2WpVF8NVai62s11rrLPAkEfv/731dbbrll9djHPrb67ne/2xilHDjLwYH929/+ttp4441rx+bnPve5xjLFBxdddFHdh/LenXfeOXqE4rbUDuxYHpy1+e+Tn/zkKL+qp+jQtQN7BM+8i9tuu6169rOfXb3lLW+p/uM//mPec24I03POOaf4nDjWXXfd6m1ve1v13//938UwpZur0YH9X//1X9W73/3uWlc94ogjqtNPP726/vrrS/AM6p44ENvVkDL4P//zP9Wll15avfKVr6wnBSAjNthgg+qzn/1s9e///u/zssrY4brrrqu23377OjwTCXbcccfqJz/5ybywpRt9xx533HFH3cYYozBWIZ/XXHNNRTz5gCPIbfJPOZjo8KEPfaj661//moPW73sMNA+W4o3f/e531SGHHFLjKX5cfPHFFdzx0Y5AH062xzTbp9gCqPOnPOUpdVui/dHXdWnnyI1/+Zd/qZ70pCdVt9xyS2vGSWeXXXap+8q2gMoPbRoOkp/DDjtsXt87FK5KTr7hDW+o80qe11lnner4448vyqNYdvA7+eSTa1yYtNV20AbPO++86hWveEWFvtfloC/abrvtRu0ZTN/xjncU7T8///nPqwMOOKB61rOeVeOOvN9qq63myeBxuibl5y/2g3ADjuhZPNNv+lg8AtI/IrZtbbmtHg8++ODFZ8gxDAqB22+/vdar1b7FE8azXeXJoAq0yMygKyKj11tvvZG8Q9dF5y3pnItMblGvS37Snq+++urGuBRuMe2Xd+HGXnvtVf3tb39rTItwyPSbb765MYwfGAEjcDcCyJtPf/rT1Ute8pLR+FsyOOpKffFCdr/oRS+qFtPm+6ZZCk8Zpu3AlmxizFGyWeR8/exnP6vWX3/9efpoDEe9fOYzn5ljF0FPJo0h9gXkfVU4sOmEaTD3v//9qze96U314AeDIJWz+eabV7/61a9iPfq6AwK/+MUvaiWQwR3C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BIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAIzBOzAnkHhCyNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAEVgnAnZgrxN9p20EjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAIzBOzAnkHhCyNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAEVgnAnZgrxN9p20EjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAIzBOzAnkHhCyNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAEVgnAnZgrxN9p20EjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAIzBOzAnkHhCyNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAEVgnAnZgrxN9p20EjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAIzBOzAnkHhCyNgBIyAETACq0Pgox/9aHOVq1yledWrXjVLVPde/epXz+795Cc/ae5zn/s0j3rUo5rf//73s/s78eLf/u3fWhzAA1x25YOyPuxhD2vudKc7NT/96U935aJuqWy7Kico16mnntrc4AY3aK5xjWs0n/jEJ7aE0ypeRm4h05BjPoyAETACRsAIGAEjYASMgBEwAkbACKwLgZJ9bV152Q7pMp6/+c1v3nz1q1/dDtldah7hzs1udrPmDW94wyydEp9+9rOfNXe+852bI488ssGG42M5COwIB/b//d//NZ/73OeaBz/4wc11r3vd1rh229vetnnhC1/Y/O53v1sOsjsk1m9+85vNPe5xDxsrJ1zf//3f/928+c1vbvbbb7+W+xjDTznlFHN/wnXmrG1vBP7jP/6jOeaYY5qrXe1qzfve975qYaT87AQHNgrwX/7lXzbXvva1Bzni6LfPPvvsVmZFRXAqzkrKg2IfJxrkiiav5D3mP4fp+s37U3FgP/3pT5+sI30qnOiqy7HP6Lef8YxntDrrC17wguZ1r3td8/nPf35sNCsPv6s5sJkk86xn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YASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRmAzEbADezPRd95GwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASMwQcAO7AkU/mEEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAKbiYAd2JuJvvM2AkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBiBCQJ2YE+g8A8jYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBHYTATswN5M9J23ETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAITBCwA3sChX8YASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIzAZiJgB/Zmou+8jYARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGYIKAHdgTKPzDCBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AENhMBO7A3E33nbQSMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAhME7MCeQOEfRsAILCICb37zm5ub3exmzSc+8YlJ8bh385vfvPn4xz8+ucfzu971rs073/nOyT3/WB0E4MTOO+/cfOlLX1qdSq9oTbdSX//JT37SPPjBD26e8pSnNL/97W+rWvRFL3pR+w7vrkJYb3vzPmMIMmKZAnw4+eSTmzvf+c7NrW51q+Yzn/nMwhe/NF4vfKFdQCNgBIyAETACRsAIGAEjYASMgBHYcggsqy1gsxpCdtUvf/nLm1WEhckX7tztbndb42Mo8Qm73EMe8pBRNr2FqeQSFWRlHdgYAm9729s2GIIdpkfg61//evOoRz1qjXNx+tT85iwQ+NOf/tS8613vavbcc8/WiI8x/NWvfnXz61//ehbZVaf5s5/9rOXOXe5yl+YLX/hC53slgzj3tqIDW3WlT/30pz/txEQPfvGLXzRPeMIT2nZ905vepNtzvaLY4Djuyx9HDA66MU66sZWQorVsDmzwu/vd796LXwkLML3oooua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ME0E7MCeJvpO2wgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBHoI2IHdg8IXRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjME0E7MCeJvpO2wgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBHoI2IHdg8IXRsAIGAEjYARmB4Hf//73xaabblp86lOfmlimzz///OK1r31tcd11100sTSc0HQT+4z/+o9h3332Lf/zHfyz+/d//feSZOOecc4o11lij+OUvfznyuP/t3/6t+Nu//dviq1/96sjjdoTVCFCnz3nOc4rrr7++OpCfGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYgQYITNSB/fjjjxd77LFHgYErPf7nf/6nuOSSS4r3vve9xaqrrloawNZcc83ixBNPLP785z+nwcv///3f/11ceOGFxUYbbVSGf+UrX1kb/v/+7/+Kf/3Xfy123HHH4vnPf375zhve8Ibi6quvzsbvm8sRePjhh4tDDz20WGeddUr8wHGbbbYpbrvttgJ8fXQPgbbtpHslcI6MwOwigCMNJx1Onbof/d5Pf/rTVgW1A/tZuITzKqusUtx0003PPqi4or8688wzyzr50Ic+VOCsHfXBxALq/J//+Z+L//qv/+ob/UMPPVRsuOGG5TtdcADagd23yhwgQaDrDuz//d//La655ppi66237o0DGEN885vfrG2jjF8++9nPFowzaNPI66OPPrr4y1/+kiCw9K/wSGU/fQIyKz1++9vfFvvtt18Z//Oe97wyn1X6dRvdDnl37bXXFitWrCiIl/wfcsghBeXysRSBP/zhD0vqGn58//vfL+COj3oE2nCyPqbuPsUmcdpppxUbbLBBKQsYB2NXwL5QNQ7mfhP7AzKBiVepvOB/znYCSsoP9gzCkZ999tmnePrpp7sLYsOcUebnPve5WTyEEfrbM888Uxmj8GlSX237h3HK98oCzdkDcZ4+6eabb64snXT8QSfsarxE//ftb3+7Mh3Cve1tbyvGNS6oTNgPxooAMvjXv/51ccQRR/RsmJIh6HV1nBhnxtrwn75hEvxnYvyk+f/kk08Wxx9/fGnTp43yox3W6V7D6Gr4D+r61bTOh0kr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EpCABCQgAQlIQAISWEsCBrDXkr73loAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCCBEQED2CMUfpGABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQggbUkYAB7Lel7bwlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISGBEwgD1C4RcJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACElhLAgaw15K+95aABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQggREBA9gjFH6RgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIIG1JGAAey3pe28JSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEhgRMIA9QuEXCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhJYSwIGsNeSvveWgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIIERAQPYIxR+kYAEJCABCUhguQn87ne/a/bZZ5/mqKOOah588MHlzt78JCCBgRD4xCc+0TzsYQ9rvvnNbw6kRBZDAhKQgAQkIAEJSEACEpCABCQgAQlIYFYJrGoAGyf24Ycf3uDgKo9///vfzeWXX97stddezaMf/ejWAbbttts2p59+evO3v/2tTN7+/69//av53Oc+1+yyyy5t+sc97nGd6f/xj380n/3sZzdJe8oppzSUyWN6Avfcc09z4oknNjvssEPL/JGPfGSzYcOG5qabbmr++9//Tp+RKVeNQJ92smqF8kYSkMDMEnjHO97R6n8CVeP+jj322Oaf//xn288awJ7N6v7JT37SbLPNNs2jHvWoZuPGjRMfAjvg/PPPbx7+8Ic3r3rVq1ZkwgLy9/znP7/5wx/+MLE8JlhdAkMPYP/nP/9prrnmmmbPPfdssF/RX4whGB8wTigP5PmWW25pDjzwwDY917zyla9sfvGLX5RJq/9z/de//vVm9913bx7xiEe045sTTjihc+xx1113Na9//evbdKSnnF32dR/brm85qg8zJyf/+Mc/NowPGVOGfHz1q19tkB2P8QT6yOT4nJb265///Ofm/e9/f9u2aUf8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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "![image.png](attachment:image.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Eigenschaften von Tabellen" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Hat immer ein \"Länge mal Breite Format\"\n", "* Wird oft als Matrix modelliert (für numerische Daten zBsp mit $\\mathbb{R}^{m\\times n}$)\n", "* (Normalerweise) unabhängige Einträge (i.i.d.)\n", "* Verschiedene Datentypen: numerisch (float, int), text (string, char), leer (None, null, NaN, \"\")\n", "* Jede Spalte ist ein Feature -> Was ist ein Feature?\n", "* Jede Zeile ist ein Datenpunkt -> Was ist ein Datenpunkt?\n", "* Jede Spalte kann ein Label sein -> Was ist ein Label?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Feature" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Spalte des tabellarischen Datasets\n", "* Eine Eigenschaft \n", "* Label ist kein Feature\n", "* Kann/Muss oft normalisiert, aggregiert oder vorverarbeitet (preprocessing) werden, dadurch kann die Qualität des Features verbessert werden (kann aber auch schlechter werden)\n", "* Kann in Beziehung zu anderen Features stehen und durch Korrelationen oder Abhängigkeiten beeinflusst werden (ZBsp Feature \"Preis\" in einem Datensatz über Autos hängt meistens direkt mit der Leistung des Autos zusammen)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Datenpunkt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Zeile des tabellarischen Datasets\n", "* Steht für einen Eintrag\n", "* Je mehr Zeilen, desto mehr Daten\n", "* Quantität $\\neq$ Qualität:\n", " * Können Duplikate beinhalten\n", " * Daten modellieren vielleicht die \"echte Situation\" nicht gut\n", " * Können leere Felder haben\n", " * Können falsch sein (Umfragen etc.)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Label" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Label ist quasi ein Namensschild bzw. eine Zugehörigkeit\n", "* Zbsp in diesem Titanic Dataset könnte man survived verwenden, um zu analysieren, welche Unterschiede zwischen Überlebenden und Nicht-Überlebenden bestehen/bestanden\n", "* Anderes Beispiel wäre aber auch Alter (Frauen und Kinder zuerst?), oder vielleicht eine geometrische Untersuchung mit den Cabin-Nummern (Vielleicht auf einer Seite der Kabine mehr Mortalitätsrate?)\n", "* Kann auch eine reelle Zahl (float) sein (Regression)\n", "* Analysen können auch ohne Label durchgeführt werden:\n", " * Gruppierungen\n", " * Dimensions-Reduzierung (zBsp.: PCA)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Einführung in Pandas" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Way to Go für Tabellarische Daten\n", "* Daten können aus verschiedenen Quellen eingelesen und ggf. auch wieder gespeichert werden (txt, csv, sql)\n", "* Eingelesene Daten werden in sogenannten DataFrames gespeichert\n", "* Es gibt auch Series als Datenstruktur für Listen- oder Array-ähnlichen Datenstrukturen\n", "* Pandas bietet eine flexible Indizierungsmöglichkeit\n", "* Viele statistische Größen (Mittelwert, Median, etc.) können einfach berechnet werden\n", "* Gute Integration mit weiteren Python-Bibliotheken (NumPy, Matplotlib, Scikit-Learn, etc.)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Im folgenden wird nun Pandas anhand von einem Beispiel eingeführt. Dabei wird dieses Dataset in diesem Notebook überall verwendet" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Importieren von Pandas\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Erstellung und Indizierung" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Wir erstellen ein Dataframe aus einer Liste ohne Index Spalte:\n", "\n", "df = pd.DataFrame({'Name' : [\"Peter\", \"Karla\", \"Anne\", \"Nino\", \"Andrzej\"],\n", " 'Geschlecht' : ['M',pd.NA,'W','M','M'],\n", " 'Alter' : [45, 53, 16, 22, 61],\n", " 'Größe' : [1.77,1.72, 1.82, 1.71, 1.68],\n", " 'Nationalität': [\"deutsch\", \"schweizerisch\", \"deutsch\", \"italienisch\", \"polnisch\"],\n", " 'Gehalt' : [3400, 4000, 0, pd.NA, 2300]\n", " }\n", " )" ] }, { "cell_type": "code", "execution_count": 3, "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", "
NameGeschlechtAlterGrößeNationalitätGehalt
0PeterM451.77deutsch3400
1Karla<NA>531.72schweizerisch4000
2AnneW161.82deutsch0
3NinoM221.71italienisch<NA>
4AndrzejM611.68polnisch2300
\n", "
" ], "text/plain": [ " Name Geschlecht Alter Größe Nationalität Gehalt\n", "0 Peter M 45 1.77 deutsch 3400\n", "1 Karla 53 1.72 schweizerisch 4000\n", "2 Anne W 16 1.82 deutsch 0\n", "3 Nino M 22 1.71 italienisch \n", "4 Andrzej M 61 1.68 polnisch 2300" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Name Anne\n", "Geschlecht W\n", "Alter 16\n", "Größe 1.82\n", "Nationalität deutsch\n", "Gehalt 0\n", "Name: 2, dtype: object" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Indizierung mit loc\n", "# Wir wählen die Zeile mit dem Index 2 aus\n", "df.loc[2]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Name Peter\n", "Geschlecht M\n", "Alter 45\n", "Größe 1.77\n", "Nationalität deutsch\n", "Gehalt 3400\n", "Name: 0, dtype: object" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Indizierung mit iloc\n", "# Wir wählen die erste Zeile aus\n", "df.iloc[0]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Nun erstellen wir ein Dataframe aus einer Liste mit Index Spalte:\n", "\n", "df = pd.DataFrame({'Name' : [\"Peter\", \"Karla\", \"Anne\", \"Nino\", \"Andrzej\"],\n", " 'Geschlecht' : ['M',pd.NA,'W','M','M'],\n", " 'Alter' : [45, 53, 16, 22, 61],\n", " 'Größe' : [1.77,1.72, 1.82, 1.71, 1.68],\n", " 'Nationalität': [\"deutsch\", \"schweizerisch\", \"deutsch\", \"italienisch\", \"polnisch\"],\n", " 'Gehalt' : [3400, 4000, 0, pd.NA, 2300]\n", " },\n", " index = ['A', 'B', 'C', 'D', 'E']\n", " )" ] }, { "cell_type": "code", "execution_count": 7, "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", "
NameGeschlechtAlterGrößeNationalitätGehalt
APeterM451.77deutsch3400
BKarla<NA>531.72schweizerisch4000
CAnneW161.82deutsch0
DNinoM221.71italienisch<NA>
EAndrzejM611.68polnisch2300
\n", "
" ], "text/plain": [ " Name Geschlecht Alter Größe Nationalität Gehalt\n", "A Peter M 45 1.77 deutsch 3400\n", "B Karla 53 1.72 schweizerisch 4000\n", "C Anne W 16 1.82 deutsch 0\n", "D Nino M 22 1.71 italienisch \n", "E Andrzej M 61 1.68 polnisch 2300" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Index ist nun selber gewählt, vorher numerisch (0-4), nun (A-E)." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Name Peter\n", "Geschlecht M\n", "Alter 45\n", "Größe 1.77\n", "Nationalität deutsch\n", "Gehalt 3400\n", "Name: A, dtype: object" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Indizierung mit Index\n", "\n", "df.loc['A']" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Name Peter\n", "Geschlecht M\n", "Alter 45\n", "Größe 1.77\n", "Nationalität deutsch\n", "Gehalt 3400\n", "Name: A, dtype: object" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# iloc indizierung nach wie vor möglich um die 1. Zeile auszuwählen\n", "df.iloc[0]" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Peter'" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Wir können auch nur bestimmte Spalten auswählen\n", "df.loc['A', 'Name']" ] }, { "cell_type": "code", "execution_count": 11, "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", "
NameGeschlecht
APeterM
BKarla<NA>
CAnneW
DNinoM
EAndrzejM
\n", "
" ], "text/plain": [ " Name Geschlecht\n", "A Peter M\n", "B Karla \n", "C Anne W\n", "D Nino M\n", "E Andrzej M" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Es ist auch die Indizierung von mehreren Spalten möglich\n", "df.loc[:, ['Name', 'Geschlecht']]" ] }, { "cell_type": "code", "execution_count": 12, "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", "
NameGeschlecht
APeterM
BKarla<NA>
\n", "
" ], "text/plain": [ " Name Geschlecht\n", "A Peter M\n", "B Karla " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Bzw. auch inklusive Zeilen\n", "df.loc[['A', 'B'], ['Name', 'Geschlecht']]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "# Ebenso kann über eine Maske indiziert werden\n", "temp = df.loc[df['Alter'] > 20]" ] }, { "cell_type": "code", "execution_count": 14, "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", "
NameGeschlechtAlterGrößeNationalitätGehalt
APeterM451.77deutsch3400
BKarla<NA>531.72schweizerisch4000
DNinoM221.71italienisch<NA>
EAndrzejM611.68polnisch2300
\n", "
" ], "text/plain": [ " Name Geschlecht Alter Größe Nationalität Gehalt\n", "A Peter M 45 1.77 deutsch 3400\n", "B Karla 53 1.72 schweizerisch 4000\n", "D Nino M 22 1.71 italienisch \n", "E Andrzej M 61 1.68 polnisch 2300" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "temp" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "# Mehrere Bedingungen können auch kombiniert werden\n", "temp = df.loc[(df['Alter'] > 20) & (df['Gehalt'] > 0)]" ] }, { "cell_type": "code", "execution_count": 16, "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", "
NameGeschlechtAlterGrößeNationalitätGehalt
APeterM451.77deutsch3400
BKarla<NA>531.72schweizerisch4000
EAndrzejM611.68polnisch2300
\n", "
" ], "text/plain": [ " Name Geschlecht Alter Größe Nationalität Gehalt\n", "A Peter M 45 1.77 deutsch 3400\n", "B Karla 53 1.72 schweizerisch 4000\n", "E Andrzej M 61 1.68 polnisch 2300" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "temp" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "# Das Dataframe kann auch mittels SQL ähnlicher Syntax gefiltert werden\n", "temp = df.query('Alter > 20 & Größe > 1.71')" ] }, { "cell_type": "code", "execution_count": 18, "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", "
NameGeschlechtAlterGrößeNationalitätGehalt
APeterM451.77deutsch3400
BKarla<NA>531.72schweizerisch4000
\n", "
" ], "text/plain": [ " Name Geschlecht Alter Größe Nationalität Gehalt\n", "A Peter M 45 1.77 deutsch 3400\n", "B Karla 53 1.72 schweizerisch 4000" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "temp" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Die Ergebnisse sind Peter bzw. Peter\n" ] } ], "source": [ "# Eine andere Art der Indizierung ist die Verwendung von at und iat\n", "# at und iat sind schneller als loc und iloc, da sie nur einen Wert zurückgeben\n", "\n", "# Beispiel:\n", "a = df.at['A', 'Name']\n", "b = df.iat[0, 0]\n", "\n", "print(f'Die Ergebnisse sind {a} bzw. {b}')" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Name Geschlecht Alter Größe Nationalität Gehalt\n", "A Peter Müller M 45 1.77 deutsch 3400\n", "B Karla 53 1.72 schweizerisch 4000\n", "C Anne W 16 1.82 deutsch 0\n", "D Nino M 22 1.71 italienisch \n", "E Andrzej M 61 1.68 polnisch 2300\n", " Name Geschlecht Alter Größe Nationalität Gehalt\n", "A Peter M 45 1.77 deutsch 3400\n", "B Karla 53 1.72 schweizerisch 4000\n", "C Anne W 16 1.82 deutsch 0\n", "D Nino M 22 1.71 italienisch \n", "E Andrzej M 61 1.68 polnisch 2300\n" ] } ], "source": [ "# at und iat können auch für das Setzen von Werten verwendet werden\n", "df.at['A', 'Name'] = 'Peter Müller'\n", "print(df)\n", "df.iat[0, 0] = 'Peter'\n", "print(df)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "# iat und at liefert einen Fehler, wenn mehere Werte ausgegeben werden sollen\n", "# df.at[['A', 'B'], ['Name']] # Fehler: Richtig wäre die nächste Zeile\n", "# df.loc[['A', 'B'], ['Name']]" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "# Außerdem kann auch einfach wie bei einer Liste eine (oder mehrere) Spalte(n) ausgewählt werden\n", "names = df['Name']" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "A Peter\n", "B Karla\n", "C Anne\n", "D Nino\n", "E Andrzej\n", "Name: Name, dtype: object\n" ] } ], "source": [ "print(names)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "print(type(names)) # Das Ergebnis ist nun eine Series" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "# Gleiches Ergebnis liefert die Adressierung via dem Punkt \".\" (Ähnlich wie bei Objekten)\n", "names = df.Name" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "A Peter\n", "B Karla\n", "C Anne\n", "D Nino\n", "E Andrzej\n", "Name: Name, dtype: object\n" ] } ], "source": [ "print(names)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "print(type(names)) # Der Typ ist also auch gleich" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Spalten und Datentypen" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Datentypen von Python und Pandas sind ähnlich, müssen aber dennoch unterschieden werden. Kann Pandas einen Datentyp nicht eindeutig zuordnen wird dieser automatisch als `object` angenommen. In numerischen Spalten ist dies meist ein Zeichen das Daten fehlen und diese zuerst bearbeitet (zBsp. beseitigt) werden müssen.\n", "\n", "\n", "| Pandas Type | Native Python Type | Beschreibung |\n", "|-------------|---------------------|-----------------------|\n", "| object | string | Zahlen und Strings |\n", "| int64 | int | Ganzzahlen |\n", "| float64 | float | Gleitkomma |\n", "| datetime64 | N/A | Datum und Zeit |\n", "\n", "Verwende `info`() um Informationen über Datentypen und Spalten anzuzeigen." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Index: 5 entries, A to E\n", "Data columns (total 6 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Name 5 non-null object \n", " 1 Geschlecht 4 non-null object \n", " 2 Alter 5 non-null int64 \n", " 3 Größe 5 non-null float64\n", " 4 Nationalität 5 non-null object \n", " 5 Gehalt 4 non-null object \n", "dtypes: float64(1), int64(1), object(4)\n", "memory usage: 452.0+ bytes\n" ] } ], "source": [ "# Informationen über das Dataframe\n", "df.info()" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Index: 5 entries, A to E\n", "Series name: Name\n", "Non-Null Count Dtype \n", "-------------- ----- \n", "5 non-null object\n", "dtypes: object(1)\n", "memory usage: 252.0+ bytes\n" ] } ], "source": [ "# Für beliebige Spalten kann folgendes verwendet werden\n", "df['Name'].info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In der Info wird auch angegeben, wie viele Werte None (=null) sind." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## NaN-Values und None/null" ] }, { "cell_type": "code", "execution_count": 30, "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", "
NameGeschlechtAlterGrößeNationalitätGehalt
AFalseFalseFalseFalseFalseFalse
BFalseTrueFalseFalseFalseFalse
CFalseFalseFalseFalseFalseFalse
DFalseFalseFalseFalseFalseTrue
EFalseFalseFalseFalseFalseFalse
\n", "
" ], "text/plain": [ " Name Geschlecht Alter Größe Nationalität Gehalt\n", "A False False False False False False\n", "B False True False False False False\n", "C False False False False False False\n", "D False False False False False True\n", "E False False False False False False" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Um die Felder anzuzeigen, welche fehlende Werte enthalten, verwenden wir den folgenden Befehl\n", "df.isna()" ] }, { "cell_type": "code", "execution_count": 31, "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", "
NameGeschlechtAlterGrößeNationalitätGehalt
ATrueTrueTrueTrueTrueTrue
BTrueFalseTrueTrueTrueTrue
CTrueTrueTrueTrueTrueTrue
DTrueTrueTrueTrueTrueFalse
ETrueTrueTrueTrueTrueTrue
\n", "
" ], "text/plain": [ " Name Geschlecht Alter Größe Nationalität Gehalt\n", "A True True True True True True\n", "B True False True True True True\n", "C True True True True True True\n", "D True True True True True False\n", "E True True True True True True" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Ähnlich können wir auch die Felder anzeigen, welche keine fehlenden Werte enthalten\n", "df.notna()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Warum ist es wichtig, solche Werte zu überprüfen bzw. sich mit sochen Werten zu befassen?" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "# Um nan-Werte zu löschen, verwenden wir den folgenden Befehl\n", "cleaned_df = df.dropna()" ] }, { "cell_type": "code", "execution_count": 33, "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", "
NameGeschlechtAlterGrößeNationalitätGehalt
APeterM451.77deutsch3400
CAnneW161.82deutsch0
EAndrzejM611.68polnisch2300
\n", "
" ], "text/plain": [ " Name Geschlecht Alter Größe Nationalität Gehalt\n", "A Peter M 45 1.77 deutsch 3400\n", "C Anne W 16 1.82 deutsch 0\n", "E Andrzej M 61 1.68 polnisch 2300" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cleaned_df" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "# Dies kann auch mit einzelnen Spalten gemacht werden\n", "cleaned_df_2 = df.dropna(subset=['Gehalt'])" ] }, { "cell_type": "code", "execution_count": 35, "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", "
NameGeschlechtAlterGrößeNationalitätGehalt
APeterM451.77deutsch3400
BKarla<NA>531.72schweizerisch4000
CAnneW161.82deutsch0
EAndrzejM611.68polnisch2300
\n", "
" ], "text/plain": [ " Name Geschlecht Alter Größe Nationalität Gehalt\n", "A Peter M 45 1.77 deutsch 3400\n", "B Karla 53 1.72 schweizerisch 4000\n", "C Anne W 16 1.82 deutsch 0\n", "E Andrzej M 61 1.68 polnisch 2300" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cleaned_df_2" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "NULL percent of column Geschlecht: 20.0 %\n", "NULL absolute of column Geschlecht: 1\n" ] } ], "source": [ "column = 'Geschlecht'\n", "\n", "amount_null = df.filter([column]).isnull().sum() / len(df) * 100\n", "amount_null_count = df.filter([column]).isnull().sum()\n", "\n", "\n", "print(f'NULL percent of column {column}: ', amount_null.iloc[0], '%')\n", "print(f'NULL absolute of column {column}: ', amount_null_count.iloc[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sortieren und Filtern" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Verwende zum Sortieren des Dataframes die Methode `sort_values('Spalte')`. Verwende dabei `inplace`, damit die Änderungen direkt im aktuellen Dataframe durchgeführt werden." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "# Wir sortieren zuerst nach dem Alter\n", "df.sort_values('Alter', inplace=True) # Wir verwenden inplace=True um das Dataframe zu überschreiben" ] }, { "cell_type": "code", "execution_count": 38, "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", "
NameGeschlechtAlterGrößeNationalitätGehalt
CAnneW161.82deutsch0
DNinoM221.71italienisch<NA>
APeterM451.77deutsch3400
BKarla<NA>531.72schweizerisch4000
EAndrzejM611.68polnisch2300
\n", "
" ], "text/plain": [ " Name Geschlecht Alter Größe Nationalität Gehalt\n", "C Anne W 16 1.82 deutsch 0\n", "D Nino M 22 1.71 italienisch \n", "A Peter M 45 1.77 deutsch 3400\n", "B Karla 53 1.72 schweizerisch 4000\n", "E Andrzej M 61 1.68 polnisch 2300" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "# Wir können auch nach mehreren Spalten sortieren\n", "df.sort_values(['Geschlecht', 'Alter'], inplace=True)" ] }, { "cell_type": "code", "execution_count": 40, "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", "
NameGeschlechtAlterGrößeNationalitätGehalt
DNinoM221.71italienisch<NA>
APeterM451.77deutsch3400
EAndrzejM611.68polnisch2300
CAnneW161.82deutsch0
BKarla<NA>531.72schweizerisch4000
\n", "
" ], "text/plain": [ " Name Geschlecht Alter Größe Nationalität Gehalt\n", "D Nino M 22 1.71 italienisch \n", "A Peter M 45 1.77 deutsch 3400\n", "E Andrzej M 61 1.68 polnisch 2300\n", "C Anne W 16 1.82 deutsch 0\n", "B Karla 53 1.72 schweizerisch 4000" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "# Wir können auch die Sortierung umkehren für jede der Spalten\n", "df.sort_values(['Geschlecht', 'Alter'], ascending=[False, False], inplace=True) # gleich wie ascending=False" ] }, { "cell_type": "code", "execution_count": 42, "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", "
NameGeschlechtAlterGrößeNationalitätGehalt
CAnneW161.82deutsch0
EAndrzejM611.68polnisch2300
APeterM451.77deutsch3400
DNinoM221.71italienisch<NA>
BKarla<NA>531.72schweizerisch4000
\n", "
" ], "text/plain": [ " Name Geschlecht Alter Größe Nationalität Gehalt\n", "C Anne W 16 1.82 deutsch 0\n", "E Andrzej M 61 1.68 polnisch 2300\n", "A Peter M 45 1.77 deutsch 3400\n", "D Nino M 22 1.71 italienisch \n", "B Karla 53 1.72 schweizerisch 4000" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "# Um zu filtern, können wir auch den folgenden Befehl verwenden, dieser ist sehr ähnlich zu der normalen Indizierung\n", "df_filtered = df.filter(['Name', 'Geschlecht', 'Alter'])" ] }, { "cell_type": "code", "execution_count": 44, "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", "
NameGeschlechtAlter
CAnneW16
EAndrzejM61
APeterM45
DNinoM22
BKarla<NA>53
\n", "
" ], "text/plain": [ " Name Geschlecht Alter\n", "C Anne W 16\n", "E Andrzej M 61\n", "A Peter M 45\n", "D Nino M 22\n", "B Karla 53" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_filtered" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "C False\n", "E False\n", "A True\n", "D False\n", "B True\n", "Name: Name, dtype: bool" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Um herauszufinden ob ein Wert in einer Spalte vorkommt, können wir folgenden Code verwenden\n", "\n", "df['Name'].isin(['Peter', 'Karla'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Datenimport und Datenexport in Pandas" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pandas stellt umfangreiche Methoden zum importieren, bearbeiten und speichern von Daten zur Verfügung.\n", "\n", "* Es werden zahlreiche Datenformate (.csv, .xlsx, .json, ...) unterstützt\n", "* Daten können Lokal oder OnLine gespeichert werden\n", "* Header können angepasst werden\n", "* Datentypen können angepasst werden\n", "* Spalten und Zeilen können verändert werden\n", "* Fehlende Werte können bearbeitet werden\n", "* ...\n", "\n", "

Formate, welche unter anderem von Pandas unterstützt werden

\n", "\n", "| Data Format | Read | Save |\n", "| ------------ | :---------------: | --------------: |\n", "| csv | `pd.read_csv()` | `df.to_csv()` |\n", "| json | `pd.read_json()` | `df.to_json()` |\n", "| excel | `pd.read_excel()` | `df.to_excel()` |\n", "| hdf | `pd.read_hdf()` | `df.to_hdf()` |\n", "| sql | `pd.read_sql()` | `df.to_sql()` |\n", "| ... | ... | ... |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Laden aus einer CSV Datei" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wir verwenden das *Titanic* Dataset. Dieses ist nun gespeichert im Ordner `_data/titanic.csv`" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "# wir verwenden dafür die Pakete os und pandas\n", "\n", "import os\n", "import pandas as pd # bereits vorher importiert" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dataset is already existing\n" ] } ], "source": [ "# Hilfsmethode\n", "\n", "path = os.path.join(\"..\", \"..\", \"_data\", \"titanic.csv\")\n", "\n", "if not os.path.exists(path):\n", " os.makedirs(os.path.dirname(path), exist_ok=True)\n", " df = pd.read_csv(\"https://raw.githubusercontent.com/rolandmueller/titanic/main/titanic3.csv\")\n", " # df = sns.load_dataset(\"titanic\")\n", " df.to_csv(path, index=False)\n", " print(f\"Dataset saved to path {path}\")\n", "else:\n", " print(\"Dataset is already existing\")" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ "path = os.path.join(\"..\", \"..\", \"_data\", \"titanic.csv\")\n", "\n", "titanic = pd.read_csv(path)" ] }, { "cell_type": "code", "execution_count": 49, "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", " \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", "
pclasssurvivednamesexagesibspparchticketfarecabinembarkedboatbodyhome.dest
011Allen, Miss. Elisabeth Waltonfemale29.00000024160211.3375B5S2NaNSt Louis, MO
111Allison, Master. Hudson Trevormale0.916712113781151.5500C22 C26S11NaNMontreal, PQ / Chesterville, ON
210Allison, Miss. Helen Lorainefemale2.000012113781151.5500C22 C26SNaNNaNMontreal, PQ / Chesterville, ON
310Allison, Mr. Hudson Joshua Creightonmale30.000012113781151.5500C22 C26SNaN135.0Montreal, PQ / Chesterville, ON
410Allison, Mrs. Hudson J C (Bessie Waldo Daniels)female25.000012113781151.5500C22 C26SNaNNaNMontreal, PQ / Chesterville, ON
.............................................
130430Zabour, Miss. Hilenifemale14.500010266514.4542NaNCNaN328.0NaN
130530Zabour, Miss. ThaminefemaleNaN10266514.4542NaNCNaNNaNNaN
130630Zakarian, Mr. Mapriededermale26.50000026567.2250NaNCNaN304.0NaN
130730Zakarian, Mr. Ortinmale27.00000026707.2250NaNCNaNNaNNaN
130830Zimmerman, Mr. Leomale29.0000003150827.8750NaNSNaNNaNNaN
\n", "

1309 rows × 14 columns

\n", "
" ], "text/plain": [ " pclass survived name \\\n", "0 1 1 Allen, Miss. Elisabeth Walton \n", "1 1 1 Allison, Master. Hudson Trevor \n", "2 1 0 Allison, Miss. Helen Loraine \n", "3 1 0 Allison, Mr. Hudson Joshua Creighton \n", "4 1 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) \n", "... ... ... ... \n", "1304 3 0 Zabour, Miss. Hileni \n", "1305 3 0 Zabour, Miss. Thamine \n", "1306 3 0 Zakarian, Mr. Mapriededer \n", "1307 3 0 Zakarian, Mr. Ortin \n", "1308 3 0 Zimmerman, Mr. Leo \n", "\n", " sex age sibsp parch ticket fare cabin embarked boat \\\n", "0 female 29.0000 0 0 24160 211.3375 B5 S 2 \n", "1 male 0.9167 1 2 113781 151.5500 C22 C26 S 11 \n", "2 female 2.0000 1 2 113781 151.5500 C22 C26 S NaN \n", "3 male 30.0000 1 2 113781 151.5500 C22 C26 S NaN \n", "4 female 25.0000 1 2 113781 151.5500 C22 C26 S NaN \n", "... ... ... ... ... ... ... ... ... ... \n", "1304 female 14.5000 1 0 2665 14.4542 NaN C NaN \n", "1305 female NaN 1 0 2665 14.4542 NaN C NaN \n", "1306 male 26.5000 0 0 2656 7.2250 NaN C NaN \n", "1307 male 27.0000 0 0 2670 7.2250 NaN C NaN \n", "1308 male 29.0000 0 0 315082 7.8750 NaN S NaN \n", "\n", " body home.dest \n", "0 NaN St Louis, MO \n", "1 NaN Montreal, PQ / Chesterville, ON \n", "2 NaN Montreal, PQ / Chesterville, ON \n", "3 135.0 Montreal, PQ / Chesterville, ON \n", "4 NaN Montreal, PQ / Chesterville, ON \n", "... ... ... \n", "1304 328.0 NaN \n", "1305 NaN NaN \n", "1306 304.0 NaN \n", "1307 NaN NaN \n", "1308 NaN NaN \n", "\n", "[1309 rows x 14 columns]" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "titanic" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wie wir sehen haben wir 1309 Zeilen (Datenpunkte) und 14 Spalten.\n", "\n", "Was ist hier das Label?\n", "\n", "Datasets können aber auch genau umgekehrt aufgebaut sein." ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "# Transpornieren des Dataframes\n", "\n", "transposed_titanic = titanic.T" ] }, { "cell_type": "code", "execution_count": 51, "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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456789...1299130013011302130313041305130613071308
pclass1111111111...3333333333
survived1100011010...0100000000
nameAllen, Miss. Elisabeth WaltonAllison, Master. Hudson TrevorAllison, Miss. Helen LoraineAllison, Mr. Hudson Joshua CreightonAllison, Mrs. Hudson J C (Bessie Waldo Daniels)Anderson, Mr. HarryAndrews, Miss. Kornelia TheodosiaAndrews, Mr. Thomas JrAppleton, Mrs. Edward Dale (Charlotte Lamson)Artagaveytia, Mr. Ramon...Yasbeck, Mr. AntoniYasbeck, Mrs. Antoni (Selini Alexander)Youseff, Mr. GeriousYousif, Mr. WazliYousseff, Mr. GeriousZabour, Miss. HileniZabour, Miss. ThamineZakarian, Mr. MapriedederZakarian, Mr. OrtinZimmerman, Mr. Leo
sexfemalemalefemalemalefemalemalefemalemalefemalemale...malefemalemalemalemalefemalefemalemalemalemale
age29.00.91672.030.025.048.063.039.053.071.0...27.015.045.5NaNNaN14.5NaN26.527.029.0
sibsp0111101020...1100011000
parch0222200000...0000000000
ticket24160113781113781113781113781199521350211205011769PC 17609...265926592628264726272665266526562670315082
fare211.3375151.55151.55151.55151.5526.5577.95830.051.479249.5042...14.454214.45427.2257.22514.458314.454214.45427.2257.2257.875
cabinB5C22 C26C22 C26C22 C26C22 C26E12D7A36C101NaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
embarkedSSSSSSSSSC...CCCCCCCCCS
boat211NaNNaNNaN310NaNDNaN...CNaNNaNNaNNaNNaNNaNNaNNaNNaN
bodyNaNNaNNaN135.0NaNNaNNaNNaNNaN22.0...NaNNaN312.0NaNNaN328.0NaN304.0NaNNaN
home.destSt Louis, MOMontreal, PQ / Chesterville, ONMontreal, PQ / Chesterville, ONMontreal, PQ / Chesterville, ONMontreal, PQ / Chesterville, ONNew York, NYHudson, NYBelfast, NIBayside, Queens, NYMontevideo, Uruguay...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", "

14 rows × 1309 columns

\n", "
" ], "text/plain": [ " 0 1 \\\n", "pclass 1 1 \n", "survived 1 1 \n", "name Allen, Miss. Elisabeth Walton Allison, Master. Hudson Trevor \n", "sex female male \n", "age 29.0 0.9167 \n", "sibsp 0 1 \n", "parch 0 2 \n", "ticket 24160 113781 \n", "fare 211.3375 151.55 \n", "cabin B5 C22 C26 \n", "embarked S S \n", "boat 2 11 \n", "body NaN NaN \n", "home.dest St Louis, MO Montreal, PQ / Chesterville, ON \n", "\n", " 2 \\\n", "pclass 1 \n", "survived 0 \n", "name Allison, Miss. Helen Loraine \n", "sex female \n", "age 2.0 \n", "sibsp 1 \n", "parch 2 \n", "ticket 113781 \n", "fare 151.55 \n", "cabin C22 C26 \n", "embarked S \n", "boat NaN \n", "body NaN \n", "home.dest Montreal, PQ / Chesterville, ON \n", "\n", " 3 \\\n", "pclass 1 \n", "survived 0 \n", "name Allison, Mr. Hudson Joshua Creighton \n", "sex male \n", "age 30.0 \n", "sibsp 1 \n", "parch 2 \n", "ticket 113781 \n", "fare 151.55 \n", "cabin C22 C26 \n", "embarked S \n", "boat NaN \n", "body 135.0 \n", "home.dest Montreal, PQ / Chesterville, ON \n", "\n", " 4 \\\n", "pclass 1 \n", "survived 0 \n", "name Allison, Mrs. Hudson J C (Bessie Waldo Daniels) \n", "sex female \n", "age 25.0 \n", "sibsp 1 \n", "parch 2 \n", "ticket 113781 \n", "fare 151.55 \n", "cabin C22 C26 \n", "embarked S \n", "boat NaN \n", "body NaN \n", "home.dest Montreal, PQ / Chesterville, ON \n", "\n", " 5 6 \\\n", "pclass 1 1 \n", "survived 1 1 \n", "name Anderson, Mr. Harry Andrews, Miss. Kornelia Theodosia \n", "sex male female \n", "age 48.0 63.0 \n", "sibsp 0 1 \n", "parch 0 0 \n", "ticket 19952 13502 \n", "fare 26.55 77.9583 \n", "cabin E12 D7 \n", "embarked S S \n", "boat 3 10 \n", "body NaN NaN \n", "home.dest New York, NY Hudson, NY \n", "\n", " 7 \\\n", "pclass 1 \n", "survived 0 \n", "name Andrews, Mr. Thomas Jr \n", "sex male \n", "age 39.0 \n", "sibsp 0 \n", "parch 0 \n", "ticket 112050 \n", "fare 0.0 \n", "cabin A36 \n", "embarked S \n", "boat NaN \n", "body NaN \n", "home.dest Belfast, NI \n", "\n", " 8 \\\n", "pclass 1 \n", "survived 1 \n", "name Appleton, Mrs. Edward Dale (Charlotte Lamson) \n", "sex female \n", "age 53.0 \n", "sibsp 2 \n", "parch 0 \n", "ticket 11769 \n", "fare 51.4792 \n", "cabin C101 \n", "embarked S \n", "boat D \n", "body NaN \n", "home.dest Bayside, Queens, NY \n", "\n", " 9 ... 1299 \\\n", "pclass 1 ... 3 \n", "survived 0 ... 0 \n", "name Artagaveytia, Mr. Ramon ... Yasbeck, Mr. Antoni \n", "sex male ... male \n", "age 71.0 ... 27.0 \n", "sibsp 0 ... 1 \n", "parch 0 ... 0 \n", "ticket PC 17609 ... 2659 \n", "fare 49.5042 ... 14.4542 \n", "cabin NaN ... NaN \n", "embarked C ... C \n", "boat NaN ... C \n", "body 22.0 ... NaN \n", "home.dest Montevideo, Uruguay ... NaN \n", "\n", " 1300 1301 \\\n", "pclass 3 3 \n", "survived 1 0 \n", "name Yasbeck, Mrs. Antoni (Selini Alexander) Youseff, Mr. Gerious \n", "sex female male \n", "age 15.0 45.5 \n", "sibsp 1 0 \n", "parch 0 0 \n", "ticket 2659 2628 \n", "fare 14.4542 7.225 \n", "cabin NaN NaN \n", "embarked C C \n", "boat NaN NaN \n", "body NaN 312.0 \n", "home.dest NaN NaN \n", "\n", " 1302 1303 1304 \\\n", "pclass 3 3 3 \n", "survived 0 0 0 \n", "name Yousif, Mr. Wazli Yousseff, Mr. Gerious Zabour, Miss. Hileni \n", "sex male male female \n", "age NaN NaN 14.5 \n", "sibsp 0 0 1 \n", "parch 0 0 0 \n", "ticket 2647 2627 2665 \n", "fare 7.225 14.4583 14.4542 \n", "cabin NaN NaN NaN \n", "embarked C C C \n", "boat NaN NaN NaN \n", "body NaN NaN 328.0 \n", "home.dest NaN NaN NaN \n", "\n", " 1305 1306 \\\n", "pclass 3 3 \n", "survived 0 0 \n", "name Zabour, Miss. Thamine Zakarian, Mr. Mapriededer \n", "sex female male \n", "age NaN 26.5 \n", "sibsp 1 0 \n", "parch 0 0 \n", "ticket 2665 2656 \n", "fare 14.4542 7.225 \n", "cabin NaN NaN \n", "embarked C C \n", "boat NaN NaN \n", "body NaN 304.0 \n", "home.dest NaN NaN \n", "\n", " 1307 1308 \n", "pclass 3 3 \n", "survived 0 0 \n", "name Zakarian, Mr. Ortin Zimmerman, Mr. Leo \n", "sex male male \n", "age 27.0 29.0 \n", "sibsp 0 0 \n", "parch 0 0 \n", "ticket 2670 315082 \n", "fare 7.225 7.875 \n", "cabin NaN NaN \n", "embarked C S \n", "boat NaN NaN \n", "body NaN NaN \n", "home.dest NaN NaN \n", "\n", "[14 rows x 1309 columns]" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "transposed_titanic" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Es gibt einige andere Parameter, die beim Einlesen der Daten angepasst werden können. So kann explizit angegeben werden, welches Trennzeichen verwendet wird oder ob die erste Zeile als Header verwendet werden soll. Ebenso kann die Indexspalte explizit angegeben werden." ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "# Einlesen der Daten ohne Header\n", "titanic = pd.read_csv(path, header=None)" ] }, { "cell_type": "code", "execution_count": 53, "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", " \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", "
012345678910111213
0pclasssurvivednamesexagesibspparchticketfarecabinembarkedboatbodyhome.dest
111Allen, Miss. Elisabeth Waltonfemale29.00024160211.3375B5S2NaNSt Louis, MO
211Allison, Master. Hudson Trevormale0.916700000000000112113781151.55C22 C26S11NaNMontreal, PQ / Chesterville, ON
310Allison, Miss. Helen Lorainefemale2.012113781151.55C22 C26SNaNNaNMontreal, PQ / Chesterville, ON
410Allison, Mr. Hudson Joshua Creightonmale30.012113781151.55C22 C26SNaN135.0Montreal, PQ / Chesterville, ON
.............................................
130530Zabour, Miss. Hilenifemale14.510266514.4542NaNCNaN328.0NaN
130630Zabour, Miss. ThaminefemaleNaN10266514.4542NaNCNaNNaNNaN
130730Zakarian, Mr. Mapriededermale26.50026567.225NaNCNaN304.0NaN
130830Zakarian, Mr. Ortinmale27.00026707.225NaNCNaNNaNNaN
130930Zimmerman, Mr. Leomale29.0003150827.875NaNSNaNNaNNaN
\n", "

1310 rows × 14 columns

\n", "
" ], "text/plain": [ " 0 1 2 3 \\\n", "0 pclass survived name sex \n", "1 1 1 Allen, Miss. Elisabeth Walton female \n", "2 1 1 Allison, Master. Hudson Trevor male \n", "3 1 0 Allison, Miss. Helen Loraine female \n", "4 1 0 Allison, Mr. Hudson Joshua Creighton male \n", "... ... ... ... ... \n", "1305 3 0 Zabour, Miss. Hileni female \n", "1306 3 0 Zabour, Miss. Thamine female \n", "1307 3 0 Zakarian, Mr. Mapriededer male \n", "1308 3 0 Zakarian, Mr. Ortin male \n", "1309 3 0 Zimmerman, Mr. Leo male \n", "\n", " 4 5 6 7 8 9 10 \\\n", "0 age sibsp parch ticket fare cabin embarked \n", "1 29.0 0 0 24160 211.3375 B5 S \n", "2 0.9167000000000001 1 2 113781 151.55 C22 C26 S \n", "3 2.0 1 2 113781 151.55 C22 C26 S \n", "4 30.0 1 2 113781 151.55 C22 C26 S \n", "... ... ... ... ... ... ... ... \n", "1305 14.5 1 0 2665 14.4542 NaN C \n", "1306 NaN 1 0 2665 14.4542 NaN C \n", "1307 26.5 0 0 2656 7.225 NaN C \n", "1308 27.0 0 0 2670 7.225 NaN C \n", "1309 29.0 0 0 315082 7.875 NaN S \n", "\n", " 11 12 13 \n", "0 boat body home.dest \n", "1 2 NaN St Louis, MO \n", "2 11 NaN Montreal, PQ / Chesterville, ON \n", "3 NaN NaN Montreal, PQ / Chesterville, ON \n", "4 NaN 135.0 Montreal, PQ / Chesterville, ON \n", "... ... ... ... \n", "1305 NaN 328.0 NaN \n", "1306 NaN NaN NaN \n", "1307 NaN 304.0 NaN \n", "1308 NaN NaN NaN \n", "1309 NaN NaN NaN \n", "\n", "[1310 rows x 14 columns]" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "titanic" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "# Einlesen der Daten mit expliziter Angabe der Indexspalte\n", "titanic = pd.read_csv(path, index_col=\"age\")" ] }, { "cell_type": "code", "execution_count": 55, "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", " \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", "
pclasssurvivednamesexsibspparchticketfarecabinembarkedboatbodyhome.dest
age
29.000011Allen, Miss. Elisabeth Waltonfemale0024160211.3375B5S2NaNSt Louis, MO
0.916711Allison, Master. Hudson Trevormale12113781151.5500C22 C26S11NaNMontreal, PQ / Chesterville, ON
2.000010Allison, Miss. Helen Lorainefemale12113781151.5500C22 C26SNaNNaNMontreal, PQ / Chesterville, ON
30.000010Allison, Mr. Hudson Joshua Creightonmale12113781151.5500C22 C26SNaN135.0Montreal, PQ / Chesterville, ON
25.000010Allison, Mrs. Hudson J C (Bessie Waldo Daniels)female12113781151.5500C22 C26SNaNNaNMontreal, PQ / Chesterville, ON
..........................................
14.500030Zabour, Miss. Hilenifemale10266514.4542NaNCNaN328.0NaN
NaN30Zabour, Miss. Thaminefemale10266514.4542NaNCNaNNaNNaN
26.500030Zakarian, Mr. Mapriededermale0026567.2250NaNCNaN304.0NaN
27.000030Zakarian, Mr. Ortinmale0026707.2250NaNCNaNNaNNaN
29.000030Zimmerman, Mr. Leomale003150827.8750NaNSNaNNaNNaN
\n", "

1309 rows × 13 columns

\n", "
" ], "text/plain": [ " pclass survived name \\\n", "age \n", "29.0000 1 1 Allen, Miss. Elisabeth Walton \n", "0.9167 1 1 Allison, Master. Hudson Trevor \n", "2.0000 1 0 Allison, Miss. Helen Loraine \n", "30.0000 1 0 Allison, Mr. Hudson Joshua Creighton \n", "25.0000 1 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) \n", "... ... ... ... \n", "14.5000 3 0 Zabour, Miss. Hileni \n", "NaN 3 0 Zabour, Miss. Thamine \n", "26.5000 3 0 Zakarian, Mr. Mapriededer \n", "27.0000 3 0 Zakarian, Mr. Ortin \n", "29.0000 3 0 Zimmerman, Mr. Leo \n", "\n", " sex sibsp parch ticket fare cabin embarked boat body \\\n", "age \n", "29.0000 female 0 0 24160 211.3375 B5 S 2 NaN \n", "0.9167 male 1 2 113781 151.5500 C22 C26 S 11 NaN \n", "2.0000 female 1 2 113781 151.5500 C22 C26 S NaN NaN \n", "30.0000 male 1 2 113781 151.5500 C22 C26 S NaN 135.0 \n", "25.0000 female 1 2 113781 151.5500 C22 C26 S NaN NaN \n", "... ... ... ... ... ... ... ... ... ... \n", "14.5000 female 1 0 2665 14.4542 NaN C NaN 328.0 \n", "NaN female 1 0 2665 14.4542 NaN C NaN NaN \n", "26.5000 male 0 0 2656 7.2250 NaN C NaN 304.0 \n", "27.0000 male 0 0 2670 7.2250 NaN C NaN NaN \n", "29.0000 male 0 0 315082 7.8750 NaN S NaN NaN \n", "\n", " home.dest \n", "age \n", "29.0000 St Louis, MO \n", "0.9167 Montreal, PQ / Chesterville, ON \n", "2.0000 Montreal, PQ / Chesterville, ON \n", "30.0000 Montreal, PQ / Chesterville, ON \n", "25.0000 Montreal, PQ / Chesterville, ON \n", "... ... \n", "14.5000 NaN \n", "NaN NaN \n", "26.5000 NaN \n", "27.0000 NaN \n", "29.0000 NaN \n", "\n", "[1309 rows x 13 columns]" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "titanic" ] }, { "cell_type": "code", "execution_count": 56, "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", " \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", " \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", " \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", " \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", " \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", " \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", "
pclasssurvivednamesexsibspparchticketfarecabinembarkedboatbodyhome.dest
age
22.011Bowerman, Miss. Elsie Edithfemale0111350555.0000E33S6NaNSt Leonards-on-Sea, England Ohio
22.011Cleaver, Miss. Alicefemale00113781151.5500NaNS11NaNNaN
22.011Frolicher, Miss. Hedwig Margarithafemale021356849.5000B39C5NaNZurich, Switzerland
22.011Gibson, Miss. Dorothy Winifredfemale0111237859.4000NaNC7NaNNew York, NY
22.011Ostby, Miss. Helene Ragnhildfemale0111350961.9792B36C5NaNProvidence, RI
22.011Pears, Mrs. Thomas (Edith Wearne)female1011377666.6000C2S8NaNIsleworth, England
22.010Ringhini, Mr. Santemale00PC 17760135.6333NaNCNaN232.0NaN
22.021Caldwell, Mrs. Albert Francis (Sylvia Mae Harb...female1124873829.0000NaNS13NaNBangkok, Thailand / Roseville, IL
22.021Cook, Mrs. (Selena Rogers)female00W./C. 1426610.5000F33S14NaNPennsylvania
22.020Jefferys, Mr. Ernest Wilfredmale20C.A. 3102931.5000NaNSNaNNaNGuernsey / Elizabeth, NJ
22.020Karnes, Mrs. J Frank (Claire Bennett)female00F.C.C. 1353421.0000NaNSNaNNaNIndia / Pittsburgh, PA
22.021Laroche, Mrs. Joseph (Juliette Marie Louise La...female12SC/Paris 212341.5792NaNC14NaNParis / Haiti
22.021Oxenham, Mr. Percy Thomasmale00W./C. 1426010.5000NaNS13NaNPondersend, England / New Durham, NJ
22.030Barton, Mr. David Johnmale003246698.0500NaNSNaNNaNEngland New York, NY
22.030Berglund, Mr. Karl Ivar Svenmale00PP 43489.3500NaNSNaNNaNTranvik, Finland New York
22.031Bradley, Miss. Bridget Deliafemale003349147.7250NaNQ13NaNKingwilliamstown, Co Cork, Ireland Glens Falls...
22.030Braund, Mr. Owen Harrismale10A/5 211717.2500NaNSNaNNaNBridgerule, Devon
22.030Brobeck, Mr. Karl Rudolfmale003500457.7958NaNSNaNNaNSweden Worcester, MA
22.031Connolly, Miss. Katefemale003703737.7500NaNQ13NaNIreland
22.030Dahlberg, Miss. Gerda Ulrikafemale00755210.5167NaNSNaNNaNNorrlot, Sweden Chicago, IL
22.030Davies, Mr. Evanmale00SC/A4 235688.0500NaNSNaNNaNNaN
22.030Dennis, Mr. Samuelmale00A/5 211727.2500NaNSNaNNaNNaN
22.031Dyker, Mrs. Adolf Fredrik (Anna Elisabeth Judi...female1034707213.9000NaNS16NaNWest Haven, CT
22.030Gilinski, Mr. Eliezermale00149738.0500NaNSNaN47.0NaN
22.031Hellstrom, Miss. Hilda Mariafemale0075488.9625NaNSCNaNNaN
22.031Hirvonen, Mrs. Alexander (Helga E Lindqvist)female11310129812.2875NaNS15NaNNaN
22.030Johansson, Mr. Erikmale003500527.7958NaNSNaN156.0NaN
22.030Karlsson, Mr. Nils Augustmale003500607.5208NaNSNaNNaNNaN
22.030Kink, Miss. Mariafemale203151528.6625NaNSNaNNaNNaN
22.031Landergren, Miss. Aurora Adeliafemale00C 70777.2500NaNS13NaNNaN
22.030Larsson-Rondberg, Mr. Edvard Amale003470657.7750NaNSNaNNaNNaN
22.031Leeni, Mr. Fahim (\"Philip Zenni\")male0026207.2250NaNC6NaNNaN
22.030Maenpaa, Mr. Matti Alexanterimale00STON/O 2. 31012757.1250NaNSNaNNaNNaN
22.030Naidenoff, Mr. Penkomale003492067.8958NaNSNaNNaNNaN
22.031Nysten, Miss. Anna Sofiafemale003470817.7500NaNS13NaNNaN
22.031Ohman, Miss. Velinfemale003470857.7750NaNSCNaNNaN
22.030Perkin, Mr. John Henrymale00A/5 211747.2500NaNSNaNNaNNaN
22.030Riihivouri, Miss. Susanna Juhantytar \"Sanni\"female00310129539.6875NaNSNaNNaNNaN
22.030Sirayanian, Mr. Orsenmale0026697.2292NaNCNaNNaNNaN
22.030Strandberg, Miss. Ida Sofiafemale0075539.8375NaNSNaNNaNNaN
22.031Vartanian, Mr. Davidmale0026587.2250NaNC13 15NaNNaN
22.030Vovk, Mr. Jankomale003492527.8958NaNSNaNNaNNaN
22.030Waelens, Mr. Achillemale003457679.0000NaNSNaNNaNAntwerp, Belgium / Stanton, OH
\n", "
" ], "text/plain": [ " pclass survived name \\\n", "age \n", "22.0 1 1 Bowerman, Miss. Elsie Edith \n", "22.0 1 1 Cleaver, Miss. Alice \n", "22.0 1 1 Frolicher, Miss. Hedwig Margaritha \n", "22.0 1 1 Gibson, Miss. Dorothy Winifred \n", "22.0 1 1 Ostby, Miss. Helene Ragnhild \n", "22.0 1 1 Pears, Mrs. Thomas (Edith Wearne) \n", "22.0 1 0 Ringhini, Mr. Sante \n", "22.0 2 1 Caldwell, Mrs. Albert Francis (Sylvia Mae Harb... \n", "22.0 2 1 Cook, Mrs. (Selena Rogers) \n", "22.0 2 0 Jefferys, Mr. Ernest Wilfred \n", "22.0 2 0 Karnes, Mrs. J Frank (Claire Bennett) \n", "22.0 2 1 Laroche, Mrs. Joseph (Juliette Marie Louise La... \n", "22.0 2 1 Oxenham, Mr. Percy Thomas \n", "22.0 3 0 Barton, Mr. David John \n", "22.0 3 0 Berglund, Mr. Karl Ivar Sven \n", "22.0 3 1 Bradley, Miss. Bridget Delia \n", "22.0 3 0 Braund, Mr. Owen Harris \n", "22.0 3 0 Brobeck, Mr. Karl Rudolf \n", "22.0 3 1 Connolly, Miss. Kate \n", "22.0 3 0 Dahlberg, Miss. Gerda Ulrika \n", "22.0 3 0 Davies, Mr. Evan \n", "22.0 3 0 Dennis, Mr. Samuel \n", "22.0 3 1 Dyker, Mrs. Adolf Fredrik (Anna Elisabeth Judi... \n", "22.0 3 0 Gilinski, Mr. Eliezer \n", "22.0 3 1 Hellstrom, Miss. Hilda Maria \n", "22.0 3 1 Hirvonen, Mrs. Alexander (Helga E Lindqvist) \n", "22.0 3 0 Johansson, Mr. Erik \n", "22.0 3 0 Karlsson, Mr. Nils August \n", "22.0 3 0 Kink, Miss. Maria \n", "22.0 3 1 Landergren, Miss. Aurora Adelia \n", "22.0 3 0 Larsson-Rondberg, Mr. Edvard A \n", "22.0 3 1 Leeni, Mr. Fahim (\"Philip Zenni\") \n", "22.0 3 0 Maenpaa, Mr. Matti Alexanteri \n", "22.0 3 0 Naidenoff, Mr. Penko \n", "22.0 3 1 Nysten, Miss. Anna Sofia \n", "22.0 3 1 Ohman, Miss. Velin \n", "22.0 3 0 Perkin, Mr. John Henry \n", "22.0 3 0 Riihivouri, Miss. Susanna Juhantytar \"Sanni\" \n", "22.0 3 0 Sirayanian, Mr. Orsen \n", "22.0 3 0 Strandberg, Miss. Ida Sofia \n", "22.0 3 1 Vartanian, Mr. David \n", "22.0 3 0 Vovk, Mr. Janko \n", "22.0 3 0 Waelens, Mr. Achille \n", "\n", " sex sibsp parch ticket fare cabin embarked boat \\\n", "age \n", "22.0 female 0 1 113505 55.0000 E33 S 6 \n", "22.0 female 0 0 113781 151.5500 NaN S 11 \n", "22.0 female 0 2 13568 49.5000 B39 C 5 \n", "22.0 female 0 1 112378 59.4000 NaN C 7 \n", "22.0 female 0 1 113509 61.9792 B36 C 5 \n", "22.0 female 1 0 113776 66.6000 C2 S 8 \n", "22.0 male 0 0 PC 17760 135.6333 NaN C NaN \n", "22.0 female 1 1 248738 29.0000 NaN S 13 \n", "22.0 female 0 0 W./C. 14266 10.5000 F33 S 14 \n", "22.0 male 2 0 C.A. 31029 31.5000 NaN S NaN \n", "22.0 female 0 0 F.C.C. 13534 21.0000 NaN S NaN \n", "22.0 female 1 2 SC/Paris 2123 41.5792 NaN C 14 \n", "22.0 male 0 0 W./C. 14260 10.5000 NaN S 13 \n", "22.0 male 0 0 324669 8.0500 NaN S NaN \n", "22.0 male 0 0 PP 4348 9.3500 NaN S NaN \n", "22.0 female 0 0 334914 7.7250 NaN Q 13 \n", "22.0 male 1 0 A/5 21171 7.2500 NaN S NaN \n", "22.0 male 0 0 350045 7.7958 NaN S NaN \n", "22.0 female 0 0 370373 7.7500 NaN Q 13 \n", "22.0 female 0 0 7552 10.5167 NaN S NaN \n", "22.0 male 0 0 SC/A4 23568 8.0500 NaN S NaN \n", "22.0 male 0 0 A/5 21172 7.2500 NaN S NaN \n", "22.0 female 1 0 347072 13.9000 NaN S 16 \n", "22.0 male 0 0 14973 8.0500 NaN S NaN \n", "22.0 female 0 0 7548 8.9625 NaN S C \n", "22.0 female 1 1 3101298 12.2875 NaN S 15 \n", "22.0 male 0 0 350052 7.7958 NaN S NaN \n", "22.0 male 0 0 350060 7.5208 NaN S NaN \n", "22.0 female 2 0 315152 8.6625 NaN S NaN \n", "22.0 female 0 0 C 7077 7.2500 NaN S 13 \n", "22.0 male 0 0 347065 7.7750 NaN S NaN \n", "22.0 male 0 0 2620 7.2250 NaN C 6 \n", "22.0 male 0 0 STON/O 2. 3101275 7.1250 NaN S NaN \n", "22.0 male 0 0 349206 7.8958 NaN S NaN \n", "22.0 female 0 0 347081 7.7500 NaN S 13 \n", "22.0 female 0 0 347085 7.7750 NaN S C \n", "22.0 male 0 0 A/5 21174 7.2500 NaN S NaN \n", "22.0 female 0 0 3101295 39.6875 NaN S NaN \n", "22.0 male 0 0 2669 7.2292 NaN C NaN \n", "22.0 female 0 0 7553 9.8375 NaN S NaN \n", "22.0 male 0 0 2658 7.2250 NaN C 13 15 \n", "22.0 male 0 0 349252 7.8958 NaN S NaN \n", "22.0 male 0 0 345767 9.0000 NaN S NaN \n", "\n", " body home.dest \n", "age \n", "22.0 NaN St Leonards-on-Sea, England Ohio \n", "22.0 NaN NaN \n", "22.0 NaN Zurich, Switzerland \n", "22.0 NaN New York, NY \n", "22.0 NaN Providence, RI \n", "22.0 NaN Isleworth, England \n", "22.0 232.0 NaN \n", "22.0 NaN Bangkok, Thailand / Roseville, IL \n", "22.0 NaN Pennsylvania \n", "22.0 NaN Guernsey / Elizabeth, NJ \n", "22.0 NaN India / Pittsburgh, PA \n", "22.0 NaN Paris / Haiti \n", "22.0 NaN Pondersend, England / New Durham, NJ \n", "22.0 NaN England New York, NY \n", "22.0 NaN Tranvik, Finland New York \n", "22.0 NaN Kingwilliamstown, Co Cork, Ireland Glens Falls... \n", "22.0 NaN Bridgerule, Devon \n", "22.0 NaN Sweden Worcester, MA \n", "22.0 NaN Ireland \n", "22.0 NaN Norrlot, Sweden Chicago, IL \n", "22.0 NaN NaN \n", "22.0 NaN NaN \n", "22.0 NaN West Haven, CT \n", "22.0 47.0 NaN \n", "22.0 NaN NaN \n", "22.0 NaN NaN \n", "22.0 156.0 NaN \n", "22.0 NaN NaN \n", "22.0 NaN NaN \n", "22.0 NaN NaN \n", "22.0 NaN NaN \n", "22.0 NaN NaN \n", "22.0 NaN NaN \n", "22.0 NaN NaN \n", "22.0 NaN NaN \n", "22.0 NaN NaN \n", "22.0 NaN NaN \n", "22.0 NaN NaN \n", "22.0 NaN NaN \n", "22.0 NaN NaN \n", "22.0 NaN NaN \n", "22.0 NaN NaN \n", "22.0 NaN Antwerp, Belgium / Stanton, OH " ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Achtung: Index ist nicht mehr eindeutig\n", "\n", "# Hier filtern wir nach allen Personen dem Alter von 22 Jahren\n", "titanic.loc[22]" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "# Nun verwenden wir das Geschlecht als Index\n", "titanic = pd.read_csv(path, index_col='sex')" ] }, { "cell_type": "code", "execution_count": 58, "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", " \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", "
pclasssurvivednameagesibspparchticketfarecabinembarkedboatbodyhome.dest
sex
female11Allen, Miss. Elisabeth Walton29.00000024160211.3375B5S2NaNSt Louis, MO
male11Allison, Master. Hudson Trevor0.916712113781151.5500C22 C26S11NaNMontreal, PQ / Chesterville, ON
female10Allison, Miss. Helen Loraine2.000012113781151.5500C22 C26SNaNNaNMontreal, PQ / Chesterville, ON
male10Allison, Mr. Hudson Joshua Creighton30.000012113781151.5500C22 C26SNaN135.0Montreal, PQ / Chesterville, ON
female10Allison, Mrs. Hudson J C (Bessie Waldo Daniels)25.000012113781151.5500C22 C26SNaNNaNMontreal, PQ / Chesterville, ON
..........................................
female30Zabour, Miss. Hileni14.500010266514.4542NaNCNaN328.0NaN
female30Zabour, Miss. ThamineNaN10266514.4542NaNCNaNNaNNaN
male30Zakarian, Mr. Mapriededer26.50000026567.2250NaNCNaN304.0NaN
male30Zakarian, Mr. Ortin27.00000026707.2250NaNCNaNNaNNaN
male30Zimmerman, Mr. Leo29.0000003150827.8750NaNSNaNNaNNaN
\n", "

1309 rows × 13 columns

\n", "
" ], "text/plain": [ " pclass survived name \\\n", "sex \n", "female 1 1 Allen, Miss. Elisabeth Walton \n", "male 1 1 Allison, Master. Hudson Trevor \n", "female 1 0 Allison, Miss. Helen Loraine \n", "male 1 0 Allison, Mr. Hudson Joshua Creighton \n", "female 1 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) \n", "... ... ... ... \n", "female 3 0 Zabour, Miss. Hileni \n", "female 3 0 Zabour, Miss. Thamine \n", "male 3 0 Zakarian, Mr. Mapriededer \n", "male 3 0 Zakarian, Mr. Ortin \n", "male 3 0 Zimmerman, Mr. Leo \n", "\n", " age sibsp parch ticket fare cabin embarked boat body \\\n", "sex \n", "female 29.0000 0 0 24160 211.3375 B5 S 2 NaN \n", "male 0.9167 1 2 113781 151.5500 C22 C26 S 11 NaN \n", "female 2.0000 1 2 113781 151.5500 C22 C26 S NaN NaN \n", "male 30.0000 1 2 113781 151.5500 C22 C26 S NaN 135.0 \n", "female 25.0000 1 2 113781 151.5500 C22 C26 S NaN NaN \n", "... ... ... ... ... ... ... ... ... ... \n", "female 14.5000 1 0 2665 14.4542 NaN C NaN 328.0 \n", "female NaN 1 0 2665 14.4542 NaN C NaN NaN \n", "male 26.5000 0 0 2656 7.2250 NaN C NaN 304.0 \n", "male 27.0000 0 0 2670 7.2250 NaN C NaN NaN \n", "male 29.0000 0 0 315082 7.8750 NaN S NaN NaN \n", "\n", " home.dest \n", "sex \n", "female St Louis, MO \n", "male Montreal, PQ / Chesterville, ON \n", "female Montreal, PQ / Chesterville, ON \n", "male Montreal, PQ / Chesterville, ON \n", "female Montreal, PQ / Chesterville, ON \n", "... ... \n", "female NaN \n", "female NaN \n", "male NaN \n", "male NaN \n", "male NaN \n", "\n", "[1309 rows x 13 columns]" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "titanic" ] }, { "cell_type": "code", "execution_count": 59, "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", " \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", "
pclasssurvivednameagesibspparchticketfarecabinembarkedboatbodyhome.dest
sex
female11Allen, Miss. Elisabeth Walton29.00024160211.3375B5S2NaNSt Louis, MO
female10Allison, Miss. Helen Loraine2.012113781151.5500C22 C26SNaNNaNMontreal, PQ / Chesterville, ON
female10Allison, Mrs. Hudson J C (Bessie Waldo Daniels)25.012113781151.5500C22 C26SNaNNaNMontreal, PQ / Chesterville, ON
female11Andrews, Miss. Kornelia Theodosia63.0101350277.9583D7S10NaNHudson, NY
female11Appleton, Mrs. Edward Dale (Charlotte Lamson)53.0201176951.4792C101SDNaNBayside, Queens, NY
..........................................
female31Whabee, Mrs. George Joseph (Shawneene Abi-Saab)38.00026887.2292NaNCCNaNNaN
female31Wilkes, Mrs. James (Ellen Needs)47.0103632727.0000NaNSNaNNaNNaN
female31Yasbeck, Mrs. Antoni (Selini Alexander)15.010265914.4542NaNCNaNNaNNaN
female30Zabour, Miss. Hileni14.510266514.4542NaNCNaN328.0NaN
female30Zabour, Miss. ThamineNaN10266514.4542NaNCNaNNaNNaN
\n", "

466 rows × 13 columns

\n", "
" ], "text/plain": [ " pclass survived name \\\n", "sex \n", "female 1 1 Allen, Miss. Elisabeth Walton \n", "female 1 0 Allison, Miss. Helen Loraine \n", "female 1 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) \n", "female 1 1 Andrews, Miss. Kornelia Theodosia \n", "female 1 1 Appleton, Mrs. Edward Dale (Charlotte Lamson) \n", "... ... ... ... \n", "female 3 1 Whabee, Mrs. George Joseph (Shawneene Abi-Saab) \n", "female 3 1 Wilkes, Mrs. James (Ellen Needs) \n", "female 3 1 Yasbeck, Mrs. Antoni (Selini Alexander) \n", "female 3 0 Zabour, Miss. Hileni \n", "female 3 0 Zabour, Miss. Thamine \n", "\n", " age sibsp parch ticket fare cabin embarked boat body \\\n", "sex \n", "female 29.0 0 0 24160 211.3375 B5 S 2 NaN \n", "female 2.0 1 2 113781 151.5500 C22 C26 S NaN NaN \n", "female 25.0 1 2 113781 151.5500 C22 C26 S NaN NaN \n", "female 63.0 1 0 13502 77.9583 D7 S 10 NaN \n", "female 53.0 2 0 11769 51.4792 C101 S D NaN \n", "... ... ... ... ... ... ... ... ... ... \n", "female 38.0 0 0 2688 7.2292 NaN C C NaN \n", "female 47.0 1 0 363272 7.0000 NaN S NaN NaN \n", "female 15.0 1 0 2659 14.4542 NaN C NaN NaN \n", "female 14.5 1 0 2665 14.4542 NaN C NaN 328.0 \n", "female NaN 1 0 2665 14.4542 NaN C NaN NaN \n", "\n", " home.dest \n", "sex \n", "female St Louis, MO \n", "female Montreal, PQ / Chesterville, ON \n", "female Montreal, PQ / Chesterville, ON \n", "female Hudson, NY \n", "female Bayside, Queens, NY \n", "... ... \n", "female NaN \n", "female NaN \n", "female NaN \n", "female NaN \n", "female NaN \n", "\n", "[466 rows x 13 columns]" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "titanic.loc['female']" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [], "source": [ "# Einlesen der Daten mit expliziter Angabe des Trennzeichens\n", "titanic = pd.read_csv(path, sep=\",\")" ] }, { "cell_type": "code", "execution_count": 61, "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", " \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", "
pclasssurvivednamesexagesibspparchticketfarecabinembarkedboatbodyhome.dest
011Allen, Miss. Elisabeth Waltonfemale29.00000024160211.3375B5S2NaNSt Louis, MO
111Allison, Master. Hudson Trevormale0.916712113781151.5500C22 C26S11NaNMontreal, PQ / Chesterville, ON
210Allison, Miss. Helen Lorainefemale2.000012113781151.5500C22 C26SNaNNaNMontreal, PQ / Chesterville, ON
310Allison, Mr. Hudson Joshua Creightonmale30.000012113781151.5500C22 C26SNaN135.0Montreal, PQ / Chesterville, ON
410Allison, Mrs. Hudson J C (Bessie Waldo Daniels)female25.000012113781151.5500C22 C26SNaNNaNMontreal, PQ / Chesterville, ON
.............................................
130430Zabour, Miss. Hilenifemale14.500010266514.4542NaNCNaN328.0NaN
130530Zabour, Miss. ThaminefemaleNaN10266514.4542NaNCNaNNaNNaN
130630Zakarian, Mr. Mapriededermale26.50000026567.2250NaNCNaN304.0NaN
130730Zakarian, Mr. Ortinmale27.00000026707.2250NaNCNaNNaNNaN
130830Zimmerman, Mr. Leomale29.0000003150827.8750NaNSNaNNaNNaN
\n", "

1309 rows × 14 columns

\n", "
" ], "text/plain": [ " pclass survived name \\\n", "0 1 1 Allen, Miss. Elisabeth Walton \n", "1 1 1 Allison, Master. Hudson Trevor \n", "2 1 0 Allison, Miss. Helen Loraine \n", "3 1 0 Allison, Mr. Hudson Joshua Creighton \n", "4 1 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) \n", "... ... ... ... \n", "1304 3 0 Zabour, Miss. Hileni \n", "1305 3 0 Zabour, Miss. Thamine \n", "1306 3 0 Zakarian, Mr. Mapriededer \n", "1307 3 0 Zakarian, Mr. Ortin \n", "1308 3 0 Zimmerman, Mr. Leo \n", "\n", " sex age sibsp parch ticket fare cabin embarked boat \\\n", "0 female 29.0000 0 0 24160 211.3375 B5 S 2 \n", "1 male 0.9167 1 2 113781 151.5500 C22 C26 S 11 \n", "2 female 2.0000 1 2 113781 151.5500 C22 C26 S NaN \n", "3 male 30.0000 1 2 113781 151.5500 C22 C26 S NaN \n", "4 female 25.0000 1 2 113781 151.5500 C22 C26 S NaN \n", "... ... ... ... ... ... ... ... ... ... \n", "1304 female 14.5000 1 0 2665 14.4542 NaN C NaN \n", "1305 female NaN 1 0 2665 14.4542 NaN C NaN \n", "1306 male 26.5000 0 0 2656 7.2250 NaN C NaN \n", "1307 male 27.0000 0 0 2670 7.2250 NaN C NaN \n", "1308 male 29.0000 0 0 315082 7.8750 NaN S NaN \n", "\n", " body home.dest \n", "0 NaN St Louis, MO \n", "1 NaN Montreal, PQ / Chesterville, ON \n", "2 NaN Montreal, PQ / Chesterville, ON \n", "3 135.0 Montreal, PQ / Chesterville, ON \n", "4 NaN Montreal, PQ / Chesterville, ON \n", "... ... ... \n", "1304 328.0 NaN \n", "1305 NaN NaN \n", "1306 304.0 NaN \n", "1307 NaN NaN \n", "1308 NaN NaN \n", "\n", "[1309 rows x 14 columns]" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "titanic" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In manchen Fällen kann das Trennzeichen (zBsp \",\") Probleme machen (zBsp Tausender-Trennzeichen oder als Gleitkomma für floats)" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [], "source": [ "# In so einem Fall kann dann die eigene Option decimal verwendet werden\n", "titanic = pd.read_csv(path, sep=\",\", decimal=\".\")" ] }, { "cell_type": "code", "execution_count": 63, "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", " \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", "
pclasssurvivednamesexagesibspparchticketfarecabinembarkedboatbodyhome.dest
011Allen, Miss. Elisabeth Waltonfemale29.00000024160211.3375B5S2NaNSt Louis, MO
111Allison, Master. Hudson Trevormale0.916712113781151.5500C22 C26S11NaNMontreal, PQ / Chesterville, ON
210Allison, Miss. Helen Lorainefemale2.000012113781151.5500C22 C26SNaNNaNMontreal, PQ / Chesterville, ON
310Allison, Mr. Hudson Joshua Creightonmale30.000012113781151.5500C22 C26SNaN135.0Montreal, PQ / Chesterville, ON
410Allison, Mrs. Hudson J C (Bessie Waldo Daniels)female25.000012113781151.5500C22 C26SNaNNaNMontreal, PQ / Chesterville, ON
.............................................
130430Zabour, Miss. Hilenifemale14.500010266514.4542NaNCNaN328.0NaN
130530Zabour, Miss. ThaminefemaleNaN10266514.4542NaNCNaNNaNNaN
130630Zakarian, Mr. Mapriededermale26.50000026567.2250NaNCNaN304.0NaN
130730Zakarian, Mr. Ortinmale27.00000026707.2250NaNCNaNNaNNaN
130830Zimmerman, Mr. Leomale29.0000003150827.8750NaNSNaNNaNNaN
\n", "

1309 rows × 14 columns

\n", "
" ], "text/plain": [ " pclass survived name \\\n", "0 1 1 Allen, Miss. Elisabeth Walton \n", "1 1 1 Allison, Master. Hudson Trevor \n", "2 1 0 Allison, Miss. Helen Loraine \n", "3 1 0 Allison, Mr. Hudson Joshua Creighton \n", "4 1 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) \n", "... ... ... ... \n", "1304 3 0 Zabour, Miss. Hileni \n", "1305 3 0 Zabour, Miss. Thamine \n", "1306 3 0 Zakarian, Mr. Mapriededer \n", "1307 3 0 Zakarian, Mr. Ortin \n", "1308 3 0 Zimmerman, Mr. Leo \n", "\n", " sex age sibsp parch ticket fare cabin embarked boat \\\n", "0 female 29.0000 0 0 24160 211.3375 B5 S 2 \n", "1 male 0.9167 1 2 113781 151.5500 C22 C26 S 11 \n", "2 female 2.0000 1 2 113781 151.5500 C22 C26 S NaN \n", "3 male 30.0000 1 2 113781 151.5500 C22 C26 S NaN \n", "4 female 25.0000 1 2 113781 151.5500 C22 C26 S NaN \n", "... ... ... ... ... ... ... ... ... ... \n", "1304 female 14.5000 1 0 2665 14.4542 NaN C NaN \n", "1305 female NaN 1 0 2665 14.4542 NaN C NaN \n", "1306 male 26.5000 0 0 2656 7.2250 NaN C NaN \n", "1307 male 27.0000 0 0 2670 7.2250 NaN C NaN \n", "1308 male 29.0000 0 0 315082 7.8750 NaN S NaN \n", "\n", " body home.dest \n", "0 NaN St Louis, MO \n", "1 NaN Montreal, PQ / Chesterville, ON \n", "2 NaN Montreal, PQ / Chesterville, ON \n", "3 135.0 Montreal, PQ / Chesterville, ON \n", "4 NaN Montreal, PQ / Chesterville, ON \n", "... ... ... \n", "1304 328.0 NaN \n", "1305 NaN NaN \n", "1306 304.0 NaN \n", "1307 NaN NaN \n", "1308 NaN NaN \n", "\n", "[1309 rows x 14 columns]" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "titanic" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Falls es keinen Header gibt, kann dieser selber erstellt werden mit dem `names` argument" ] }, { "cell_type": "code", "execution_count": 64, "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", " \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", "
own_classsurvivednamesexagesibspparchticketfarecabinembarkedboatbodyhome.dest
011Allen, Miss. Elisabeth Waltonfemale29.00000024160211.3375B5S2NaNSt Louis, MO
111Allison, Master. Hudson Trevormale0.916712113781151.5500C22 C26S11NaNMontreal, PQ / Chesterville, ON
210Allison, Miss. Helen Lorainefemale2.000012113781151.5500C22 C26SNaNNaNMontreal, PQ / Chesterville, ON
310Allison, Mr. Hudson Joshua Creightonmale30.000012113781151.5500C22 C26SNaN135.0Montreal, PQ / Chesterville, ON
410Allison, Mrs. Hudson J C (Bessie Waldo Daniels)female25.000012113781151.5500C22 C26SNaNNaNMontreal, PQ / Chesterville, ON
.............................................
130430Zabour, Miss. Hilenifemale14.500010266514.4542NaNCNaN328.0NaN
130530Zabour, Miss. ThaminefemaleNaN10266514.4542NaNCNaNNaNNaN
130630Zakarian, Mr. Mapriededermale26.50000026567.2250NaNCNaN304.0NaN
130730Zakarian, Mr. Ortinmale27.00000026707.2250NaNCNaNNaNNaN
130830Zimmerman, Mr. Leomale29.0000003150827.8750NaNSNaNNaNNaN
\n", "

1309 rows × 14 columns

\n", "
" ], "text/plain": [ " own_class survived name \\\n", "0 1 1 Allen, Miss. Elisabeth Walton \n", "1 1 1 Allison, Master. Hudson Trevor \n", "2 1 0 Allison, Miss. Helen Loraine \n", "3 1 0 Allison, Mr. Hudson Joshua Creighton \n", "4 1 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) \n", "... ... ... ... \n", "1304 3 0 Zabour, Miss. Hileni \n", "1305 3 0 Zabour, Miss. Thamine \n", "1306 3 0 Zakarian, Mr. Mapriededer \n", "1307 3 0 Zakarian, Mr. Ortin \n", "1308 3 0 Zimmerman, Mr. Leo \n", "\n", " sex age sibsp parch ticket fare cabin embarked boat \\\n", "0 female 29.0000 0 0 24160 211.3375 B5 S 2 \n", "1 male 0.9167 1 2 113781 151.5500 C22 C26 S 11 \n", "2 female 2.0000 1 2 113781 151.5500 C22 C26 S NaN \n", "3 male 30.0000 1 2 113781 151.5500 C22 C26 S NaN \n", "4 female 25.0000 1 2 113781 151.5500 C22 C26 S NaN \n", "... ... ... ... ... ... ... ... ... ... \n", "1304 female 14.5000 1 0 2665 14.4542 NaN C NaN \n", "1305 female NaN 1 0 2665 14.4542 NaN C NaN \n", "1306 male 26.5000 0 0 2656 7.2250 NaN C NaN \n", "1307 male 27.0000 0 0 2670 7.2250 NaN C NaN \n", "1308 male 29.0000 0 0 315082 7.8750 NaN S NaN \n", "\n", " body home.dest \n", "0 NaN St Louis, MO \n", "1 NaN Montreal, PQ / Chesterville, ON \n", "2 NaN Montreal, PQ / Chesterville, ON \n", "3 135.0 Montreal, PQ / Chesterville, ON \n", "4 NaN Montreal, PQ / Chesterville, ON \n", "... ... ... \n", "1304 328.0 NaN \n", "1305 NaN NaN \n", "1306 304.0 NaN \n", "1307 NaN NaN \n", "1308 NaN NaN \n", "\n", "[1309 rows x 14 columns]" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "own_header_titanic = pd.read_csv(path, header=0, names=['own_class', 'survived', 'name', 'sex', 'age', 'sibsp', 'parch', 'ticket', 'fare', 'cabin', 'embarked', 'boat', 'body', 'home.dest'])\n", "\n", "own_header_titanic # würde auch funktionieren wenn kein header gegeben wäre" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In unserem Fall wollen wir die Namen beibehalten, sprich wir verwenden die gleichen Spaltennamen wie im originalen Datenset. Um die Spaltennamen des ursprünglichen Datensets zu erhalten verwenden wir den `columns()` Befehl." ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [], "source": [ "# Alle Spaltennamen erhalten\n", "columns = titanic.columns" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['pclass', 'survived', 'name', 'sex', 'age', 'sibsp', 'parch', 'ticket',\n", " 'fare', 'cabin', 'embarked', 'boat', 'body', 'home.dest'],\n", " dtype='object')" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "columns" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 1309 entries, 0 to 1308\n", "Data columns (total 14 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 pclass 1309 non-null int64 \n", " 1 survived 1309 non-null int64 \n", " 2 name 1309 non-null object \n", " 3 sex 1309 non-null object \n", " 4 age 1046 non-null float64\n", " 5 sibsp 1309 non-null int64 \n", " 6 parch 1309 non-null int64 \n", " 7 ticket 1309 non-null object \n", " 8 fare 1308 non-null float64\n", " 9 cabin 295 non-null object \n", " 10 embarked 1307 non-null object \n", " 11 boat 486 non-null object \n", " 12 body 121 non-null float64\n", " 13 home.dest 745 non-null object \n", "dtypes: float64(3), int64(4), object(7)\n", "memory usage: 143.3+ KB\n" ] } ], "source": [ "# Ausgeben lassen der Informationen über die Spalten inklusive Null-Count:\n", "titanic.info()\n", "\n", "# Weitere Infos findet man oft auf der Webseite des Datesets, in diesem Fall: https://www.kaggle.com/c/titanic/data (Achtung, nicht genau das gleiche Dataset, in diesem Fall bereits bereinigt und aufgteilt in train und test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wir sehen, manche Spalten sind als Typ `object`, obwohl sie zbsp als string durchgehen könnten. Richtige Datentypen sind wichtig, da so dann mehr Methoden zur Verfügung stehen." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Für manche Spalten ist es aber dann Vorteilhaft, die null bzw. None Werte davor zu befüllen" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [], "source": [ "# Betrachten wir die Spalte home.dest:\n", "# Die Daten sind eigentlich Werte des Typs string, aber es wird als object interpretiert -> Dies ändern wir nun\n", "\n", "# Füllen der Daten mit dem Wert '' (leerer String)\n", "titanic['home.dest'] = titanic['home.dest'].fillna(value='')\n", "\n", "\n", "titanic['home.dest'] = titanic[\"home.dest\"].astype(\"string\")" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 1309 entries, 0 to 1308\n", "Data columns (total 14 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 pclass 1309 non-null int64 \n", " 1 survived 1309 non-null int64 \n", " 2 name 1309 non-null object \n", " 3 sex 1309 non-null object \n", " 4 age 1046 non-null float64\n", " 5 sibsp 1309 non-null int64 \n", " 6 parch 1309 non-null int64 \n", " 7 ticket 1309 non-null object \n", " 8 fare 1308 non-null float64\n", " 9 cabin 295 non-null object \n", " 10 embarked 1307 non-null object \n", " 11 boat 486 non-null object \n", " 12 body 121 non-null float64\n", " 13 home.dest 1309 non-null string \n", "dtypes: float64(3), int64(4), object(6), string(1)\n", "memory usage: 143.3+ KB\n" ] } ], "source": [ "titanic.info()" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 St Louis, MO\n", "1 Montreal, PQ / Chesterville, ON\n", "2 Montreal, PQ / Chesterville, ON\n", "3 Montreal, PQ / Chesterville, ON\n", "4 Montreal, PQ / Chesterville, ON\n", " ... \n", "1304 \n", "1305 \n", "1306 \n", "1307 \n", "1308 \n", "Name: home.dest, Length: 1309, dtype: string" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "titanic['home.dest']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wenn im Vorhinein die Datentypen schon feststehen, können auch diese beim Einlesen verwendet werden. Dafür muss ein Dictionary für das Argument `dtype` übergeben werden." ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "# Einlesen der Daten mit home.dest als String\n", "titanic = pd.read_csv(path, dtype={\"home.dest\": 'string'}, header=0)" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 1309 entries, 0 to 1308\n", "Data columns (total 14 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 pclass 1309 non-null int64 \n", " 1 survived 1309 non-null int64 \n", " 2 name 1309 non-null object \n", " 3 sex 1309 non-null object \n", " 4 age 1046 non-null float64\n", " 5 sibsp 1309 non-null int64 \n", " 6 parch 1309 non-null int64 \n", " 7 ticket 1309 non-null object \n", " 8 fare 1308 non-null float64\n", " 9 cabin 295 non-null object \n", " 10 embarked 1307 non-null object \n", " 11 boat 486 non-null object \n", " 12 body 121 non-null float64\n", " 13 home.dest 745 non-null string \n", "dtypes: float64(3), int64(4), object(6), string(1)\n", "memory usage: 143.3+ KB\n" ] } ], "source": [ "titanic.info()" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 St Louis, MO\n", "1 Montreal, PQ / Chesterville, ON\n", "2 Montreal, PQ / Chesterville, ON\n", "3 Montreal, PQ / Chesterville, ON\n", "4 Montreal, PQ / Chesterville, ON\n", " ... \n", "1304 \n", "1305 \n", "1306 \n", "1307 \n", "1308 \n", "Name: home.dest, Length: 1309, dtype: string" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "titanic['home.dest']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Es können auch sogenannte na-filter verwendet (und adaptiert) bzw. deaktiviert werden, welche Pandas ggf. unterbinden, leere String und dergleichen mit einen NaN-Symbol zu ersetzen." ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [], "source": [ "# Einlesen mit na_filter = False\n", "titanic = pd.read_csv(path, na_filter=False, header=0, dtype={\"home.dest\": 'string'})" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 St Louis, MO\n", "1 Montreal, PQ / Chesterville, ON\n", "2 Montreal, PQ / Chesterville, ON\n", "3 Montreal, PQ / Chesterville, ON\n", "4 Montreal, PQ / Chesterville, ON\n", " ... \n", "1304 \n", "1305 \n", "1306 \n", "1307 \n", "1308 \n", "Name: home.dest, Length: 1309, dtype: string" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "titanic['home.dest']" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [], "source": [ "titanic = pd.read_csv(path, header=0, sep=',', index_col=False, decimal='.')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Speichern eines Dataframes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wie am Anfang erwähnt können die Dataframes auch in einer Datei gespeichert werden." ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [], "source": [ "# speichern des dataframes als json\n", "\n", "path = os.path.join(\"..\", \"..\", \"_data\", \"titanic.json\")\n", "\n", "titanic.to_json(path)" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [], "source": [ "# Laden der json Datei:\n", "titanic = pd.read_json(path)" ] }, { "cell_type": "code", "execution_count": 79, "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", " \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", "
pclasssurvivednamesexagesibspparchticketfarecabinembarkedboatbodyhome.dest
011Allen, Miss. Elisabeth Waltonfemale29.00000024160211.3375B5S2NaNSt Louis, MO
111Allison, Master. Hudson Trevormale0.916712113781151.5500C22 C26S11NaNMontreal, PQ / Chesterville, ON
210Allison, Miss. Helen Lorainefemale2.000012113781151.5500C22 C26SNoneNaNMontreal, PQ / Chesterville, ON
310Allison, Mr. Hudson Joshua Creightonmale30.000012113781151.5500C22 C26SNone135.0Montreal, PQ / Chesterville, ON
410Allison, Mrs. Hudson J C (Bessie Waldo Daniels)female25.000012113781151.5500C22 C26SNoneNaNMontreal, PQ / Chesterville, ON
.............................................
130430Zabour, Miss. Hilenifemale14.500010266514.4542NoneCNone328.0None
130530Zabour, Miss. ThaminefemaleNaN10266514.4542NoneCNoneNaNNone
130630Zakarian, Mr. Mapriededermale26.50000026567.2250NoneCNone304.0None
130730Zakarian, Mr. Ortinmale27.00000026707.2250NoneCNoneNaNNone
130830Zimmerman, Mr. Leomale29.0000003150827.8750NoneSNoneNaNNone
\n", "

1309 rows × 14 columns

\n", "
" ], "text/plain": [ " pclass survived name \\\n", "0 1 1 Allen, Miss. Elisabeth Walton \n", "1 1 1 Allison, Master. Hudson Trevor \n", "2 1 0 Allison, Miss. Helen Loraine \n", "3 1 0 Allison, Mr. Hudson Joshua Creighton \n", "4 1 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) \n", "... ... ... ... \n", "1304 3 0 Zabour, Miss. Hileni \n", "1305 3 0 Zabour, Miss. Thamine \n", "1306 3 0 Zakarian, Mr. Mapriededer \n", "1307 3 0 Zakarian, Mr. Ortin \n", "1308 3 0 Zimmerman, Mr. Leo \n", "\n", " sex age sibsp parch ticket fare cabin embarked boat \\\n", "0 female 29.0000 0 0 24160 211.3375 B5 S 2 \n", "1 male 0.9167 1 2 113781 151.5500 C22 C26 S 11 \n", "2 female 2.0000 1 2 113781 151.5500 C22 C26 S None \n", "3 male 30.0000 1 2 113781 151.5500 C22 C26 S None \n", "4 female 25.0000 1 2 113781 151.5500 C22 C26 S None \n", "... ... ... ... ... ... ... ... ... ... \n", "1304 female 14.5000 1 0 2665 14.4542 None C None \n", "1305 female NaN 1 0 2665 14.4542 None C None \n", "1306 male 26.5000 0 0 2656 7.2250 None C None \n", "1307 male 27.0000 0 0 2670 7.2250 None C None \n", "1308 male 29.0000 0 0 315082 7.8750 None S None \n", "\n", " body home.dest \n", "0 NaN St Louis, MO \n", "1 NaN Montreal, PQ / Chesterville, ON \n", "2 NaN Montreal, PQ / Chesterville, ON \n", "3 135.0 Montreal, PQ / Chesterville, ON \n", "4 NaN Montreal, PQ / Chesterville, ON \n", "... ... ... \n", "1304 328.0 None \n", "1305 NaN None \n", "1306 304.0 None \n", "1307 NaN None \n", "1308 NaN None \n", "\n", "[1309 rows x 14 columns]" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "titanic" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Index: 1309 entries, 0 to 1308\n", "Data columns (total 14 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 pclass 1309 non-null int64 \n", " 1 survived 1309 non-null int64 \n", " 2 name 1309 non-null object \n", " 3 sex 1309 non-null object \n", " 4 age 1046 non-null float64\n", " 5 sibsp 1309 non-null int64 \n", " 6 parch 1309 non-null int64 \n", " 7 ticket 1309 non-null object \n", " 8 fare 1308 non-null float64\n", " 9 cabin 295 non-null object \n", " 10 embarked 1307 non-null object \n", " 11 boat 486 non-null object \n", " 12 body 121 non-null float64\n", " 13 home.dest 745 non-null object \n", "dtypes: float64(3), int64(4), object(7)\n", "memory usage: 153.4+ KB\n" ] } ], "source": [ "titanic.info()" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [], "source": [ "# We can delete the created json again\n", "os.remove(path)" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [], "source": [ "path = os.path.join(\"..\", \"..\", \"_data\", \"titanic.csv\")\n", "\n", "# In the case of a csv file, which occurs most often, we have a lot of possibilities\n", "titanic.to_csv(path, sep=',', decimal='.', index=False, header=True) # and many more" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "## Aufgabe:\n", "Laden Sie das *Titanic* Dataset erneut (Falls Link benötigt wird: https://raw.githubusercontent.com/rolandmueller/titanic/main/titanic3.csv).\n", "\n", "Bearbeiten Sie nun folgende Punkte! Dokumentieren Sie dabei ihre Schritte indem Sie ggf. auch Fehlversuche als Zellen zu belassen (um zu zeigen, dass etwas nicht funktioniert). \n", "\n", "* Wie ist das Dataset aufgebaut?\n", "\n", " Ein Datensatz hat (name, alter, kabine, etc.) und ob diese person überlebt hat.\n", "* Was bedeuten die einzelnen Features?\n", "\n", " Es gibt personen mit (name, alter, etc.) und ob diese Personen überlebt haben.\n", "* Extrahieren Sie Informationen über das Dataframe über die `info()` Methoden\n", "\n", " Namen sind Objects und bei body gibt es die wenigsten non-nulls\n", "* Analysieren Sie die Datentypen und auch die Anzahl der leeren Zellen in jeder Spalte. Wie viele Prozent sind leer/fehlend?\n", "\n", " In body gibt es 90.7% NaN werte\n", "* Filtern sie das Dataframe, sodass es nur Zeilen beinhaltet, bei der die `Geschlecht`-Spalte und bei der das `Alter` nicht leer ist\n", "\n", " Fertig!\n", "* Sortieren Sie das Dataframe absteigend nach der Spalte `Alter`\n", "\n", " Fertig!\n", "* Erstellen Sie ein neues Dataframe (`inplace=False`), wo Sie den Namen außerdem noch alphabetisch sortieren (aufsteigend). Es soll also zuerst absteigend nach `Alter`, danach aufsteigend nach `Name` sortiert werden.\n", "\n", " Fertig!\n", "* Speichern Sie dieses neue Dataframe unter einem neuen Namen ab und verwenden Sie ab jetzt nur noch dieses Dataset.\n", "\n", " Fertig!\n", "* Verwenden Sie die anschließend einen Befehl um die Ticket-Klasse `pclass` der jüngste(n) Passagier(in) herauszufinden und außerdem, ob diese Person überlebt hat. Sollte dieser Wert leer sein, so dürfen Sie diese Zeilen entfernen. Wie alt war diese Person?\n", "\n", " Age: 0.1667\n", " pclass: 3\n", " survived: 1\n", "* Bonus: Finden Sie, unabhängig von den vorigen Aufgaben, den längsten Namen (Anzahl der Charakter). Wie viele Zeichen hat dieser Name?\n", "\n", " Length: 82\n", " Name: 'Penasco y Castellana, Mrs. Victor de Satode (Maria Josefa Perez de Soto y Vallejo)'" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Index: 1309 entries, 0 to 1308\n", "Data columns (total 14 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 pclass 1309 non-null int64 \n", " 1 survived 1309 non-null int64 \n", " 2 name 1309 non-null object \n", " 3 sex 1309 non-null object \n", " 4 age 1046 non-null float64\n", " 5 sibsp 1309 non-null int64 \n", " 6 parch 1309 non-null int64 \n", " 7 ticket 1309 non-null object \n", " 8 fare 1308 non-null float64\n", " 9 cabin 295 non-null object \n", " 10 embarked 1307 non-null object \n", " 11 boat 486 non-null object \n", " 12 body 121 non-null float64\n", " 13 home.dest 745 non-null object \n", "dtypes: float64(3), int64(4), object(7)\n", "memory usage: 153.4+ KB\n" ] } ], "source": [ "#Aufgabe 3\n", "titanic.info()" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "NULL percent of column body: 90.75630252100841 %\n", "NULL absolute of column body: 1188\n" ] } ], "source": [ "#Aufgabe 4\n", "column = 'body'\n", "\n", "amount_null = titanic.filter([column]).isnull().sum() / len(titanic) * 100\n", "amount_null_count = titanic.filter([column]).isnull().sum()\n", "\n", "\n", "print(f'NULL percent of column {column}: ', amount_null.iloc[0], '%')\n", "print(f'NULL absolute of column {column}: ', amount_null_count.iloc[0])" ] }, { "cell_type": "code", "execution_count": 85, "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", " \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", "
pclasssurvivednamesexagesibspparchticketfarecabinembarkedboatbodyhome.dest
011Allen, Miss. Elisabeth Waltonfemale29.00000024160211.3375B5S2NaNSt Louis, MO
111Allison, Master. Hudson Trevormale0.916712113781151.5500C22 C26S11NaNMontreal, PQ / Chesterville, ON
210Allison, Miss. Helen Lorainefemale2.000012113781151.5500C22 C26SNoneNaNMontreal, PQ / Chesterville, ON
310Allison, Mr. Hudson Joshua Creightonmale30.000012113781151.5500C22 C26SNone135.0Montreal, PQ / Chesterville, ON
410Allison, Mrs. Hudson J C (Bessie Waldo Daniels)female25.000012113781151.5500C22 C26SNoneNaNMontreal, PQ / Chesterville, ON
.............................................
130130Youseff, Mr. Geriousmale45.50000026287.2250NoneCNone312.0None
130430Zabour, Miss. Hilenifemale14.500010266514.4542NoneCNone328.0None
130630Zakarian, Mr. Mapriededermale26.50000026567.2250NoneCNone304.0None
130730Zakarian, Mr. Ortinmale27.00000026707.2250NoneCNoneNaNNone
130830Zimmerman, Mr. Leomale29.0000003150827.8750NoneSNoneNaNNone
\n", "

1046 rows × 14 columns

\n", "
" ], "text/plain": [ " pclass survived name \\\n", "0 1 1 Allen, Miss. Elisabeth Walton \n", "1 1 1 Allison, Master. Hudson Trevor \n", "2 1 0 Allison, Miss. Helen Loraine \n", "3 1 0 Allison, Mr. Hudson Joshua Creighton \n", "4 1 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) \n", "... ... ... ... \n", "1301 3 0 Youseff, Mr. Gerious \n", "1304 3 0 Zabour, Miss. Hileni \n", "1306 3 0 Zakarian, Mr. Mapriededer \n", "1307 3 0 Zakarian, Mr. Ortin \n", "1308 3 0 Zimmerman, Mr. Leo \n", "\n", " sex age sibsp parch ticket fare cabin embarked boat \\\n", "0 female 29.0000 0 0 24160 211.3375 B5 S 2 \n", "1 male 0.9167 1 2 113781 151.5500 C22 C26 S 11 \n", "2 female 2.0000 1 2 113781 151.5500 C22 C26 S None \n", "3 male 30.0000 1 2 113781 151.5500 C22 C26 S None \n", "4 female 25.0000 1 2 113781 151.5500 C22 C26 S None \n", "... ... ... ... ... ... ... ... ... ... \n", "1301 male 45.5000 0 0 2628 7.2250 None C None \n", "1304 female 14.5000 1 0 2665 14.4542 None C None \n", "1306 male 26.5000 0 0 2656 7.2250 None C None \n", "1307 male 27.0000 0 0 2670 7.2250 None C None \n", "1308 male 29.0000 0 0 315082 7.8750 None S None \n", "\n", " body home.dest \n", "0 NaN St Louis, MO \n", "1 NaN Montreal, PQ / Chesterville, ON \n", "2 NaN Montreal, PQ / Chesterville, ON \n", "3 135.0 Montreal, PQ / Chesterville, ON \n", "4 NaN Montreal, PQ / Chesterville, ON \n", "... ... ... \n", "1301 312.0 None \n", "1304 328.0 None \n", "1306 304.0 None \n", "1307 NaN None \n", "1308 NaN None \n", "\n", "[1046 rows x 14 columns]" ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Aufgabe 5\n", "cleaned_df_2 = titanic.dropna(subset=['sex', 'age'])\n", "cleaned_df_2" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [], "source": [ "#Aufgabe 6\n", "titanic.sort_values('age', ascending=False, inplace=True)" ] }, { "cell_type": "code", "execution_count": 87, "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", " \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", "
pclasssurvivednamesexagesibspparchticketfarecabinembarkedboatbodyhome.dest
1411Barkworth, Mr. Algernon Henry Wilsonmale80.0002704230.0000A23SBNaNHessle, Yorks
6111Cavendish, Mrs. Tyrell William (Julia Florence...female76.0101987778.8500C46S6NaNLittle Onn Hall, Staffs
123530Svensson, Mr. Johanmale74.0003470607.7750NoneSNoneNaNNone
910Artagaveytia, Mr. Ramonmale71.000PC 1760949.5042NoneCNone22.0Montevideo, Uruguay
13510Goldschmidt, Mr. George Bmale71.000PC 1775434.6542A5CNoneNaNNew York, NY
.............................................
130230Yousif, Mr. WazlimaleNaN0026477.2250NoneCNoneNaNNone
130330Yousseff, Mr. GeriousmaleNaN00262714.4583NoneCNoneNaNNone
130530Zabour, Miss. ThaminefemaleNaN10266514.4542NoneCNoneNaNNone
126230van Billiard, Master. James WilliammaleNaN11A/5. 85114.5000NoneSNoneNaNNone
126830van Melkebeke, Mr. PhilemonmaleNaN003457779.5000NoneSNoneNaNNone
\n", "

1309 rows × 14 columns

\n", "
" ], "text/plain": [ " pclass survived name \\\n", "14 1 1 Barkworth, Mr. Algernon Henry Wilson \n", "61 1 1 Cavendish, Mrs. Tyrell William (Julia Florence... \n", "1235 3 0 Svensson, Mr. Johan \n", "9 1 0 Artagaveytia, Mr. Ramon \n", "135 1 0 Goldschmidt, Mr. George B \n", "... ... ... ... \n", "1302 3 0 Yousif, Mr. Wazli \n", "1303 3 0 Yousseff, Mr. Gerious \n", "1305 3 0 Zabour, Miss. Thamine \n", "1262 3 0 van Billiard, Master. James William \n", "1268 3 0 van Melkebeke, Mr. Philemon \n", "\n", " sex age sibsp parch ticket fare cabin embarked boat \\\n", "14 male 80.0 0 0 27042 30.0000 A23 S B \n", "61 female 76.0 1 0 19877 78.8500 C46 S 6 \n", "1235 male 74.0 0 0 347060 7.7750 None S None \n", "9 male 71.0 0 0 PC 17609 49.5042 None C None \n", "135 male 71.0 0 0 PC 17754 34.6542 A5 C None \n", "... ... ... ... ... ... ... ... ... ... \n", "1302 male NaN 0 0 2647 7.2250 None C None \n", "1303 male NaN 0 0 2627 14.4583 None C None \n", "1305 female NaN 1 0 2665 14.4542 None C None \n", "1262 male NaN 1 1 A/5. 851 14.5000 None S None \n", "1268 male NaN 0 0 345777 9.5000 None S None \n", "\n", " body home.dest \n", "14 NaN Hessle, Yorks \n", "61 NaN Little Onn Hall, Staffs \n", "1235 NaN None \n", "9 22.0 Montevideo, Uruguay \n", "135 NaN New York, NY \n", "... ... ... \n", "1302 NaN None \n", "1303 NaN None \n", "1305 NaN None \n", "1262 NaN None \n", "1268 NaN None \n", "\n", "[1309 rows x 14 columns]" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Aufgabe 7\n", "titanic_sorted_name = titanic.sort_values(['age', 'name'], ascending=[False, True], inplace=False)\n", "titanic_sorted_name" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\tikaiz.DESKTOP-N3LM399\\AppData\\Local\\Temp\\ipykernel_21032\\4067016626.py:3: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " temp.sort_values('age', ascending=True, inplace=True)\n" ] }, { "data": { "text/plain": [ "pclass 3\n", "survived 1\n", "name Dean, Miss. Elizabeth Gladys \"Millvina\"\n", "sex female\n", "age 0.1667\n", "sibsp 1\n", "parch 2\n", "ticket C.A. 2315\n", "fare 20.575\n", "cabin None\n", "embarked S\n", "boat 10\n", "body NaN\n", "home.dest Devon, England Wichita, KS\n", "Name: 763, dtype: object" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Aufgabe 8\n", "temp = titanic_sorted_name.dropna(subset=['age'])\n", "temp.sort_values('age', ascending=True, inplace=True)\n", "temp.iloc[0]" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "82" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Bonus\n", "lengths = titanic_sorted_name['name'].apply(len)\n", "longest_name = titanic_sorted_name.loc[lengths.idxmax(), 'name']\n", "longest_name_length = lengths.max()\n", "longest_name_length\n" ] } ], "metadata": { "kernelspec": { "display_name": "dsai", "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.19" } }, "nbformat": 4, "nbformat_minor": 2 }