In diesem Python Pandas Tutorial möchten wir Interessierten eine Einführung in die bekannten Pakete Python Pandas und Python Matplotlib geben. Beide Pakete haben zentrale Bedeutung im Rahmen von Data Analytics bzw. bei der Anwendung von Machine Learning Algorithmen mittels Python.
Der Artikel reiht sich ein in unser Python Tutorial und baut auf den in diesem Blog gezeigten ersten Schritten auf. Im Sinne eines besseren Verständnisses haben uns bewusst dazu entschieden, auch dieses Python Tutorial deutsch zu halten.
Der folgende Artikel stellt Python Pandas und Python Matplotlib vor und geht der Frage nach: “Was kann man mit Python machen?“
- Konkret schauen wir uns zunächst Python Pandas an, das als das Werkzeug für Datenverarbeitung schlechthin gilt.
- Darauf aufbauend beschäftigen wir uns mit den Möglichkeiten des schnellen Erstellens von Grafiken und die Interaktion zwischen Pandas und Python Matplotlib.
Für anschauliche Beispiele wurde das Datenset „StudentsPerformance“ von Kaggle verwendet.
Sie möchten noch weitere Tipps und gezielte Unterstützung zu Python Pandas und Python Matplotlib? – Dann wenden Sie sich hierzu an uns für eine professionelle Beratung rund um Python & Statistik. Wir freuen uns über Ihre unverbindliche Anfrage.
Was kann man mit Python machen? – Daten verarbeiten!
Die Kernkompetenz von Pandas sind Datenverarbeitung und Datenanalyse. Pandas ist dabei außerordentlich effizient und erweitert die Python Sprache um weitere benötigte Befehle. Die eingeführte Syntax ähnelt in vielerlei Hinsicht der Datenbanksprache SQL und auch den Dataframes, die man aus der Programmiersprache R kennt.
Pandas bedient sich dabei Strukturen, die durch das wichtige Python Paket Numpy eingeführt werden. Folglich beginnt dieses Python Pandas Tutorial mit dem Import dieser beiden Pakete in der für Python typischen Weise:
import numpy as np
import pandas as pd
Wenn vorher die Pakete installiert worden sind, dann sollte dieser Import fehlerfrei laufen. Andernfalls müssen die Pakete vorab installiert werden. Diesem Thema wird sich demnächst ein weiteres Tutorial in unserer Blogserie widmen.
Herzstück von Python Pandas: Der Dataframe
In Pandas werden Daten in sogenannten Dataframes gespeichert. Ein Dataframe ist eine tabellarische Auftragung zugehöriger Daten. Klassischerweise stehen in den Reihen der Tabelle die Einzelmessungen und in den Spalten die festgehaltenen Werte einer Messung. Nachfolgend werden wir einen Dataframe aus drei klassischen Python-Listen erstellen.
Zunächst erstellen wir die Listen mit Dummy-Data und danach fügen wir sie in einem Dictionary zusammen.
namen = ["Tobi", "Maria", "Steffen", "Helena", "Birgit"]
ergebnisse = np.random.rand(10)
daten = pd.date_range("20211001", periods=10)
combined = {"Name":np.tile(namen, 2), "Ergebnis":ergebnisse, "Datum":daten}
Der Befehl np.tile() erstellt ein Numpy Array, welches zweimal aus der Namensliste besteht, da jede erdachte Person zweimal getestet wurde. Mit dem Befehl np.random.rand(10) erstellen wir ein Array mit 10 Zufallsmessungen. Weiters erstellt np.data_range(“20211001”, periods=10) 10 Datumsangaben zu den jeweiligen Messungen.
df = pd.DataFrame(dictionary)
print(df)
Name | Ergebnis | Datum | |
0 | Tobi | 0.983279 | 01.10.2021 |
1 | Maria | 0.998511 | 02.10.2021 |
2 | Steffen | 0.924282 | 03.10.2021 |
3 | Helena | 0.881045 | 04.10.2021 |
4 | Birgit | 0.253521 | 05.10.2021 |
5 | Tobi | 0.199796 | 06.10.2021 |
6 | Maria | 0.984691 | 07.10.2021 |
7 | Steffen | 0.109185 | 08.10.2021 |
8 | Helena | 0.833147 | 09.10.2021 |
9 | Birgit | 0.766036 | 10.10.2021 |
Obiger Befehl erstellt also aus dem Dictionary den Dataframe. Jede der Listen ist nun eine sogenannte Pandas Series, also eine Spalte im Dataframe. Außerdem wurde ein Index erzeugt, welcher von 0 (erste Reihe) bis 9 (letzte Reihe bei zehn Einträgen) reicht. Mit dem print() Befehl können wir uns den Dataframe sowie die Typen der enthaltenen Daten ansehen.
print(df.dtypes)
Name | object |
Ergebnis | float64 |
Datum | datetime64[ns] |
dtype: | object |
Python Pandas Tutorial: Daten einlesen
Zufällig erstellte Daten sind allerdings nicht besonders realistisch. Pandas bringt zum Glück Methoden mit, mit denen .csv Dateien eingelesen werden können. Auf die entsprechende Datei muss im Befehl verwiesen werden. Ebenso gibt es Möglichkeiten, beispielsweise dateien aus Excel oder SPSS einzulesen.
df = pd.read_csv("StudentsPerformance.csv")
df.head()
gender | race/ethnity | parental level of education | lunch | test preparation course | math score | reading score | writing score | |
0 | female | group B | bachelor’s degree | standard | none | 72 | 72 | 74 |
1 | female | group C | some college | standard | completed | 69 | 90 | 88 |
2 | female | group B | master’s degree | standard | none | 90 | 95 | 93 |
3 | male | group A | associate’s degree | free/reduced | none | 47 | 57 | 44 |
4 | male | group C | some college | standard | none | 76 | 78 | 75 |
Der Befehl df.head() zeigt die ersten fünf Reihen des Dataframes an. Das Äquivalent dazu ist der df.tail(), der die letzten fünf Zeilen ausgibt. Das funktioniert besonders gut in Jupyter Notebooks, aber auch in einer Konsole lassen sich die Befehle mit geschachteltem print(df.head()) ausführen.
Weitere Methoden
Wir wollen ein paar weitere Methoden in diesem Python Tutorial Deutsch vorstellen. Der Befehl df.describe() erstellt einen Dataframe, der zu allen numerischen Spalten verschiedene Kennzahlen errechnet und darstellt. Sehr praktisch und übersichtlich.
df.describe()
math score | reading score | writing score | |
count | 1000 | 1000 | 1000 |
mean | 66,089 | 69,169 | 68,054 |
std | 15,16308 | 14,600192 | 15,195657 |
min | 0 | 17 | 10 |
25% | 57 | 59 | 57,75 |
50% | 66 | 70 | 69 |
75% | 77 | 79 | 79 |
max | 100 | 100 | 100 |
Weiters und mithilfe von eckigen Klammern, wie etwa im Befehl df [“math score”], kann man eine Spalte des Dataframes ansteuern und anzeigen lassen oder durchsuchen. Natürlich lassen sich Dataframes auch zeilenweise ansprechen:
df.loc[0]
df.loc[35:38]
Der erste Befehl zeigt die ersten Zeile des Dataframes, während der Befehl df.loc[35:38] ein sogenannter Splice Befehl ist. Python interpretiert diesen Befehl so, dass alle Zeilen von 35 bis 38 angezeigt werden. Splicing funktioniert übrigens mit allen Listen in Python!
Aber Vorsicht: Mit df.loc[] wird auf den Index des Dataframes zugegriffen, welcher nicht notwendigerweise aus Zahlen bestehen muss.
Mithilfe des Befehls df.at[39, “lunch”] lässt sich zu guter Letzt beispielsweise noch der Wert in Zeile 39 und der Spalte „lunch“ abrufen.
Python Matplotlib: Dataframe visualisieren
Zunächst wollen wir dem Dataframe noch eine weitere Spalte hinzufügen, welche den Mittelwert aus allen drei Scores eines Schülers berechnet. Wir nennen die Spalte mean. Der entsprechende Befehl dazu lautet: df.mean().
df["mean"] = df.mean(axis=1)
Im abschließenden Teil zu diesem Python Pandas Tutorial soll nun die Spalte mean für die ersten 50 Schüler visualisiert werden. Dazu benötigen wir das Paket Python Matplotlib. Der Import erfolgt durch folgenden Befehl:
import matplotlib.pyplot as plt
Anschließend plotten wir das Histogramm der Mittelwerte.
plt.figure()
df["mean"].plot.hist(bins=12, alpha=0.5)
plt.xlabel("Mean Grade")
plt.tight_layout()
plt.savefig("pandas_beispiel.png")
plt.show()
Zur Erklärung: Die Befehle plt.figure() und plt.show() eröffnen eine neue Instanz einer Python Matplotlib Visualisierung und zeigen die fertige Darstellung. Daher umfassen sie den Code
Mit df[„mean“].plot.hist() wird in der geöffneten Instanz ein Histogramm erstellt, welchem wir mit plt.xlabel() noch eine x-Achsenbeschriftung hinzufügen .
Schließlich hilft uns der Befehl plt.tight_layout(), eine kompakte Darstellung zu erstellen, in der sich keine Elemente überlappen. Er sollte immer am Schluss verwendet werden.
Und mit plt.savefig(„Dateiname.png“) wird die finale Visualisierung nun noch gespeichert.
Ausblick
In diesem Python Pandas Tutorial haben wir die Grundlagen der mächtigen Bibliothek Pandas beleuchtet. Wir haben einen Dataframe aus zufälligen Daten erstellt und darüber hinaus auch aus einer .csv-Datei geladen. Anschließend haben wir noch gezeigt, wie effektiv Pandas und Python Matplotlib zusammenarbeiten.
Die Frage „Was kann man mit Python machen?“ ist damit aber natürlich noch nicht erschöpfend beantwortet. Wir wollen Ihnen in zukünftigen Blogartikel noch weitere Einblicke in diese faszinierende Programmiersprache bieten. Im nächsten Tutorial zu Jupyter Python werden Sie erfahren, wie man einfach und schnell in Jupyter Notebooks programmieren kann.
Parallel freuen wir uns, ihnen bei Bedarf mit einer professionellen Python Programmierung zur Seite zu stehen. Wir freuen uns über Ihre unverbindliche Kontaktanfrage.