pandas DataFrame
Wenn es um Data Science geht, ist es wohl nicht übertrieben zu sagen, dass Sie die Arbeitsweise Ihres Unternehmens verändern können, wenn Sie das Potenzial Ihrer Daten mit pandas DataFrame voll ausschöpfen. Dazu benötigen Sie allerdings die richtigen Datenstrukturen. Sie helfen Ihnen, bei der Bearbeitung und Analyse von Daten maximale Effizienz zu erzielen.
Eine der sinnvollsten Datenstrukturen, die Sie zu diesem Zweck einsetzen können, ist pandas DataFrame.
pandas ist eine Open-Source-Bibliothek für die Programmiersprache Python, die schnelle und flexible Datenstrukturen und Datenanalysetools bereitstellt. Entwickelt wurde dieses anwenderfreundliche Tool zur Datenmanipulation ursprünglich von Wes McKinney. Es setzt auf dem NumPy-Paket auf, und seine wichtigste Datenstruktur ist der DataFrame.
Wenn Sie sich jetzt gerade etwas überfordert fühlen: keine Sorge! Wir erklären pandas DataFrame gleich in allen Einzelheiten. Vorerst müssen Sie nur wissen, dass pandas DataFrame ein benutzerfreundliches Tool ist, das sich gut für den Einsatz in Bereichen eignet, die stark auf Daten angewiesen sind. Dazu gehören wissenschaftliches Computing, maschinelles Lernen und – wie bereits erwähnt – Data Science.
Wir werden die Besonderheiten von pandas weiter unten genauer aufschlüsseln. Sie werden erfahren, wie Sie einen , gehören pandas-DataFrame erstellen und damit arbeiten können. Außerdem werden wir auf die Vorteile des Einsatzes von pandas DataFrame eingehen.
pandas bietet zwei Arten von Datenstrukturen:
- pandas-DataFrame (zweidimensional)
- pandas-Series (eindimensional)
pandas macht aus Daten wie CSV- oder TSV-Dateien oder einer SQL-Datenbank (Structured Query Language) ein Python-Objekt mit Zeilen und Spalten, das als DataFrame bezeichnet wird. Diese Objekte sind Tabellen in Statistiksoftware (wie z. B. Excel oder SPSS) sehr ähnlich. Analog zur Funktionsweise von Excel können Sie mit pandas-DataFrames tabellarische Daten in Zeilen mit Beobachtungen und Spalten mit Variablen speichern und manipulieren sowie wertvolle Informationen aus dem gegebenen Datenbestand extrahieren.
Sie können die pandas-API auf Apache Spark 3.2 ausführen. Auf diese Weise können Sie die pandas-Workloads gleichmäßig verteilen und so sicherstellen, dass alles wie gewünscht erledigt wird.
Nachdem wir uns nun mit den beiden von pandas bereitgestellten Datenstrukturtypen befasst haben, wollen wir einen Schritt zurücktreten und uns ansehen, was ein pandas-DataFrame eigentlich genau ist. Sie erhalten zunächst eine kurze Definition, gefolgt von einer übersichtlichen Liste der Eingaben, die ein DataFrame akzeptiert.
Was ist ein pandas-DataFrame?
Ein pandas-DataFrame ist eine Möglichkeit, tabellarische Daten darzustellen und mit ihnen zu arbeiten. Man kann ihn als Tabelle betrachten, die Daten in Zeilen und Spalten organisiert. Es handelt sich also um eine zweidimensionale Datenstruktur. Ein DataFrame kann wahlweise von Grund auf neu oder unter Verwendung anderer Datenstrukturen wie NumPy-Arrays erstellt werden.
Wenn Sie pandas DataFrame verwenden, können Sie Daten in verschiedenen Formaten und aus unterschiedlichen Quellen importieren. Sie können beispielsweise NumPy-Arrays oder natürlich auch pandas-Inhalte importieren.
Hier sind die wichtigsten Eingabetypen, die von einem DataFrame akzeptiert werden:
- Dict mit 1D-ndarrays, Lists, Dicts oder Serien
- 2-D numpy.ndarray
- Strukturiertes oder Datensatz-ndarray
- A-Series
- Ein anderer DataFrame
Häufige Fragen zum Umgang mit pandas-DataFrames
Zu wissen, welche Strukturen pandas bereitstellt und was genau ein pandas-DataFrame ist, bedeutet noch lange nicht, dass Sie genau über pandas-DataFrames Bescheid wissen. Daher wollen wir in diesem Abschnitt einige der häufigsten Fragen zur Arbeit mit pandas-DataFrames beantworten.
Wenn Ihre Fragen nicht unter den sechs Fragen sind, die wir im Folgenden klären, lesen Sie einfach weiter. Wir werden im Verlauf dieses Artikels noch einige andere Themen behandeln und einige weitere wichtige Fragen beantworten.
1. Wie löscht man Indizes, Zeilen oder Spalten aus einem pandas-DataFrame?
Nicht alle Spalten (oder Zeilen oder Indizes) in einem DataFrame sind immer gleichermaßen notwendig. Manchmal müssen Sie sogar ein DataFrame-Objekt löschen. Wie das geht, wollen wir Ihnen hier zeigen.
Wir werden nun – beginnend mit den Indizes – nacheinander erklären, wie Sie die einzelnen Objekte löschen können. In diesem und allen folgenden Beispielen in diesem Artikel kürzen wir den Begriff „DataFrame“ im Code mit „df“ ab – das ist gängige Praxis.
DataFrames haben zwar immer irgendeine Art Index, weshalb das vollständige Löschen von Indizes schwierig ist, aber Sie können Ihr Indexlabel ändern oder den Namen komplett entfernen. Zum Entfernen des Namens verwenden Sie den Befehl del df.index.name.
Sie können auch den Index Ihres DataFrame zurücksetzen. Das ist hilfreich, wenn Indexwerte doppelt vorhanden sind. Dazu müssen Sie Ihren Index lediglich zurücksetzen, alle Duplikate löschen und dann den neuen Spaltenindex ohne Duplikate einrichten.
Das Löschen von Spalten ist ein bisschen einfacher. Mit der .drop()-Methode können Sie Spalten herausnehmen. Hierzu müssen Sie die Spaltenlabel angeben, die Sie entfernen möchten. Prüfen Sie daher, ob Sie die richtigen Spaltennamen eingegeben haben, bevor Sie den .drop()-Befehl ausführen. Außerdem können Sie, wenn Sie „inplace“ auf „True“ setzen, Spalten entfernen, ohne den DataFrame neu zuzuordnen.
Zum Schluss zeigen wir Ihnen, wie Sie DataFrame-Zeilen löschen.
Durch Ausführen von df.drop_duplicates() werden doppelte Zeilen unter Berücksichtigung der Kriterien entfernt, die Sie für Zeilenlabel angegeben haben. Sie können zum Löschen auch hier die .drop()-Methode verwenden, die wir oben für Spalten beschrieben haben, nur müssen Sie hier dann einen Index für die Zeile angeben, die gelöscht werden soll. Vergessen Sie aber nicht, den Index danach zurückzusetzen.
Wenn Sie gezielt Zeilen mit fehlenden Werten entfernen möchten, können Sie df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False) verwenden. Dadurch werden automatisch alle Zeilen mit NULL-Werten entfernt. Sie können die Parameter der Funktion auch anpassen, um festzulegen, ob fehlende Werte aus einer bestimmten Datenmenge entfernt werden sollen.
Wenn Sie die NULL-Werte durch bestimmte Werte ersetzen möchten, können Sie, statt sie mit .dropna() zu löschen, auch direkt den Befehl .fillna() verwenden.
2. Wie benennt man den Index oder Spalten eines pandas-DataFrame um?
Das Umbenennen von Indizes und Spalten ist viel einfacher und bequemer als das Löschen. Zum Umbenennen dieser Objekte müssen Sie nur die Methode .rename( ) verwenden und dazu den Index (oder die Spalten) eingeben, für den bzw. die Sie einen neuen Wert angeben möchten.
Wenn Sie beim Umbenennen das inplace-Argument in „False“ ändern, wird der DataFrame beim Ändern der Spaltennamen nicht neu zugewiesen.
3. Wie werden Daten in Ihrem pandas-DataFrame formatiert?
Werte in DataFrames werden von Nutzern ständig bearbeitet, geändert und formatiert. Wir wollen uns einmal einige der wichtigsten Strategien hierfür ansehen, die Sie kennen sollten.
Wenn Sie jedes Vorkommen eines bestimmten Strings ersetzen möchten, verwenden Sie den Befehl .replace(). Dabei werden die Parameter im Format „(Ausgangswert, Zielwert)“ ausgefüllt.
Das Programm ersetzt dann automatisch jede Instanz des Strings oder Werts, den Sie ändern möchten, durch das entsprechende Zielelement.
Eine andere Formatierung, die Sie vielleicht benötigen, ist die Möglichkeit, Teilstrings zu entfernen, die Sie nicht brauchen. Setzen Sie den Befehl .map() für die Spalte „result“ ab, wird die von Ihnen gewählte Lambda-Funktion auf jedes Element in dieser Spalte angewendet.
Sie können den Spaltentext auch in mehrere Zeilen aufteilen, was allerdings etwas komplizierter ist. Daher bitten wir Sie bei der nachfolgenden Beschreibung der Vorgehensweise um ein wenig Geduld.
Zunächst müssen Sie die zu langen Zeilen ermitteln, damit Sie wissen, welche davon Sie aufteilen möchten. Wenn Sie sie gefunden haben, nehmen Sie die Spalte, in der sie sich befinden, und fügen ein Leerzeichen ein. Der nächste Schritt besteht dann darin, die Werte, die auf verschiedene Zeilen aufgeteilt werden sollen, in ein Series-Objekt zu übernehmen.
Wenn Ihre Series NaN-Werte enthält, ist das nicht weiter schlimm: Sie sind auf dem richtigen Weg. Sie müssen die Series einfach nur stacken, damit die fertige Kopie keine unerwünschten NaN-Werte mehr enthält.
Zum Überführen der gestackten Series in das gewünschte Format müssen Sie die Ebene löschen, um sie an den DataFrame anzugleichen. Danach müssen Sie Ihre Series nur noch in einen DataFrame umwandeln, sie wieder in den ursprünglichen DataFrame einfügen und die fehlerhafte Spalte schließlich aus Ihrem ursprünglichen DataFrame löschen. Der letzte Schritt – das Löschen der Spalte – verhindert die Erzeugung von Duplikaten.
Die letzte Formatierung, die Sie für die Daten in Ihrem DataFrame nutzen können, besteht in der Anwendung einer Funktion auf die Zeilen oder Spalten des DataFrame.
Zunächst wählen Sie die Zeile, die Sie bearbeiten möchten, mit .loc[] oder .iloc[] aus; da wir uns aber in DataFrame befinden, sollten Sie eher df.loc bzw. df.iloc verwenden. Wenn Sie nun die passenden Zeilen ausgewählt haben, können Sie mit .apply() Funktionen wie doubler wahlweise auf eine Zeile oder eine Spalte anwenden.
4. Wie erstelle ich einen leeren DataFrame?
Das Erstellen eines leeren DataFrame beschränkt sich auf die Verwendung der pandas-Funktion .DataFrame().
Wenn Sie hoffen, den DataFrame mit NaNs zu initialisieren, können Sie einfach numpy.nan verwenden, das den Typ float aufweist. Das hat zur Folge, dass auch die Datenwerte in Ihrem neuen DataFrame standardmäßig vom Typ float sind. Indem Sie das dtype-Attribut eingeben und dann den gesuchten Typ eintragen, können Sie diese Standardeinstellung umgehen.
Die Funktion .DataFrame() verlangt das Übergeben der Daten, die Sie in Ihren DataFrame einfügen möchten, d. h. Ihre Indizes und Spalten. Diese Daten können beliebig viele unterschiedliche Typen aufweisen. Außerdem können Sie, wie wir bereits festgestellt haben, mit dem dtype-Attribut den gewünschten Datentyp erzwingen.
Sie können die Achsenlabel oder den Index angeben, die Ihr leerer DataFrame verwenden soll. Tun Sie das nicht, konstruiert der pandas-DataFrame diese automatisch für Sie, indem er die Regeln des gesunden Menschenverstands anwendet.
5. Erkennt pandas Datumsangaben beim Importieren von Daten?
Im Prinzip schon. In der Praxis ist es etwas komplizierter.
pandas erkennt es zwar, wenn ein Datum eingegeben wird, aber ab und an braucht es noch einen kleinen Schubs in die richtige Richtung. Genauer gesagt, müssen Sie das Argument parse_dates immer dann hinzufügen, wenn Sie Datumsangaben aus einer CSV-Datei o. ä. importieren. Bei einer CSV-Datei würde das etwa so aussehen:
pd.read_csv('yourFile', parse_dates=True)
Dieser Ansatz eignet sich am besten für Datumsangaben, die eine numerische Formatierung verwenden. Allerdings weisen nicht alle Datumswerte ein solches Format auf.
Bei ungewöhnlichen Datumsformaten oder solchen, die DataFrame nur schwer erkennt, sollten Sie Ihre eigenen Parser erstellen. Diese können die Form einer Lambda-Funktion aufweisen, die zur Steuerung der Datums- und Zeiteingabeerkennung einen Formatstring verwendet.
Aber ganz gleich, auf welche Weise Sie pandas einen Stups geben: Am Ende erkennt es Datum und Uhrzeit auf jeden Fall. Sie können Ihren DataFrame auf diese Weise mit minimalem Aufwand anweisen, alle datumsbasierten Informationen zu erfassen, mit denen Sie ihn füttern.
6. Wann, warum und wie sollten Sie Ihren pandas-DataFrame anpassen?
Die Datenanalyse gehört zu den wichtigsten Anwendungen des pandas-DataFrame. Deshalb ist es wichtig, dass Sie Ihren DataFrame anpassen und umgestalten können, um eine für Ihre Datenanalyse optimal geeignete Struktur zu erhalten.
Die Antwort auf die Frage „Wann sollte ich meinen DataFrame anpassen?“ lautet also: immer dann, wenn das aktuelle Format nicht für die durchzuführende Datenanalyse geeignet ist, aber Sie zu diesem Zweck keine neuen Spalten oder Zeilen erstellen möchten. Und der Grund für eine Anpassung besteht darin, dass Sie immer nach der Form suchen, die sich am besten für Ihre Datenanalyse eignet.
Bleibt also nur noch die Frage des Wie.
Sie können hier zwischen Pivoting und Stacking wählen. Auch die Verwendung eines kombinierten Unstacking-and-Melting-Ansatzes ist möglich. Wir werden im Detail aufschlüsseln, wie diese drei Ansätze funktionieren und wie Sie sie für die Anpassung Ihres DataFrame verwenden können.
DataFrame per Pivoting anpassen
Beginnen wir mit der Pivoting-Option. Hierdurch wird aus Ihrer ursprünglichen Tabelle eine neue Tabelle erstellt, die Sie ganz nach Ihren Wünschen gestalten können. Bei Verwendung dieser Funktion werden drei Argumente übergeben.
Zunächst einmal sind da die Werte. Für dieses Argument wählen Sie die Werte des ursprünglichen DataFrame aus, die in den neuen DataFrame übernommen werden sollen. Hier legen Sie also fest, was Sie einbeziehen und worauf Sie lieber verzichten möchten.
Als Nächstes übergeben Sie die Spalten. Alle Spalten, die Sie übergeben, werden zu Spalten in Ihrer finalen Tabelle.
Zu guter Letzt müssen Sie noch die Indizes auswählen, die Sie in Ihrer neuen Tabelle verwenden möchten.
Es ist wichtig, genau zu wissen, welche Daten Sie in Ihre resultierende Tabelle aufnehmen möchten. Sie können z. B. keine Zeilen einbauen, die doppelte Werte in den von Ihnen angegebenen Spalten enthalten, da sonst eine Fehlermeldung ausgegeben wird. Anderes Beispiel: Wenn Sie nicht präzise festlegen, welche Werte Sie in die endgültige Tabelle aufnehmen möchten, führen Sie möglicherweise ein Pivoting nach mehreren Spalten aus.
Als Nächstes werden wir uns mit dem Stacking befassen.
DataFrame per Stacking anpassen
Wenn Sie DataFrames stacken, werden sie größer. Das ist eine Tatsache, die Sie berücksichtigen sollten. Wir haben das Stacking bereits in der dritten Frage angesprochen, als wir erläuterten, wie Sie Daten in Ihrem DataFrame formatieren.
Die technische Erklärung dafür lautet, dass Sie den innersten Spaltenindex verschieben und ihn stattdessen in den innersten Zeilenindex umwandeln. Dadurch erhalten Sie einen DataFrame, der einen neuen Index mit einer neuen Ebene mit Zeilenlabeln hat, die sich auf der innersten Ebene befinden.
An dieser Stelle nun wollen wir uns kurz das Unstacking ansehen. Wie Sie sich vielleicht vorstellen können, handelt es sich dabei um die Umkehrung des Stackings: Während beim Stacking der innerste Spaltenindex verschoben wird, wird beim Unstacking der innerste Zeilenindex verschoben. Daher verschieben Sie beim Unstacking den innersten Zeilenindex, damit er stattdessen als innerster Spaltenindex verwendet werden kann. Unstacking wird in Kombination mit Melting verwendet, das wir uns daher als nächstes ansehen werden.
DataFrame per Melting anpassen
Melting ist ideal, wenn Ihr DataFrame mindestens eine Spalte als Bezeichnervariablen verwendet und die verbleibenden Spalten Messvariablen sind. In solchen Fällen machen Sie Ihren DataFrame per Melting länger (statt breiter).
Im Wesentlichen heben Sie die Pivotierung Ihrer Messvariablen auf die Zeilenachse auf, um per Melting dafür zu sorgen, dass die Messvariablen in der Höhe – statt der Breite – des DataFrame platziert werden. Das Endprodukt enthält dann zwei Spalten: eine für Variablen und eine für Werte.
So verwenden Sie pandas-DataFrames
Sie können DataFrames auf gleiche Weise verwenden wie Excel-Tabellen. pandas DataFrame bildet dabei keine Ausnahme.
Im Wesentlichen können Sie pandas DataFrame als Datenstruktur nutzen. Auch eine Verwendung zur Datenverarbeitung und -analyse ist möglich – ganz genau wie bei einer Tabellenkalkulation.
Wenn Sie Daten lesen oder manipulieren müssen, ist pandas ein nützliches Werkzeug, das Ihnen beim Erreichen dieses Ziels hilft. Wir haben bereits erläutert, wie Sie Daten in pandas DataFrame eingeben können. Da pandas mit vielen verschiedenen Datentypen kompatibel ist, können Sie viele verschiedene Datentypen importieren. So ist sichergestellt, dass Sie auf jeden Fall mit Ihren Informationen arbeiten können – unabhängig vom vorliegenden Format.
Sie können Ihre Daten dann mithilfe der oben beschriebenen Formatierungsprozesse in das von Ihnen gewünschte Format umwandeln. Sie können bereits vorhandene Daten transformieren und in ein geeigneteres Format konvertieren, das Ihren Bedürfnissen eher entgegenkommt.
Da pandas eigens für die Nutzung mit Python entwickelt wurde, können Sie die beiden praktisch immer kombinieren. So können Sie Aufgaben wie die Skalierung von SHAP-Berechnungen mit PySpark und pandas ganz einfach durchführen.
Wir werden nun genauer beschreiben, wie Sie bestimmte Aufgaben und Funktionen innerhalb von pandas-DataFrames ausführen. Dabei werden wir Themen wie die Erstellung von pandas-DataFrames sowie die Indizierung und Iterationen behandeln, bevor wir uns nachfolgend ausführlich mit den Vorteilen der Verwendung von pandas befassen.
So erstellen Sie einen pandas-DataFrame
Da pandas-DataFrames vielseitige Werkzeuge sind, die auf unterschiedlichste Weise verwendet werden können, gibt es auch mehrere Möglichkeiten ihrer Erstellung.
Wie Sie einen leeren pandas-DataFrame einrichten, haben wir bereits in der Antwort auf Frage 4 beschrieben. Dort finden Sie eines der Verfahren, mit denen Sie einen neuen pandas-DataFrame erstellen können. Die Methode eignet sich am besten, wenn Sie noch keine andere Datenstruktur haben, die Sie nach pandas „verlagern“ können – oder anders gesagt, wenn Sie mit einem komplett leeren Blatt beginnen möchten.
Wir werden uns jetzt genauer ansehen, wie Sie einen pandas-DataFrame aus einem NumPy-ndarray erstellen.
Kurz gesagt: Sie können DataFrames ganz einfach aus NumPy-Arrays erstellen. Sie müssen nichts weiter tun, als Ihr gewünschtes Array an die Funktion .DataFrame() in Ihrem pandas-Datenargument zu übergeben. Diese gestaltet Ihren neuen DataFrame dann mithilfe Ihrer NumPy-Daten. Das Argument sieht in etwa so aus:
print(pd.dataframe [ ] )
Die Eingabedaten landen dann in den eckigen Klammern.
Die Werte, der Index und die Spaltennamen sollten bereits in Ihrem NumPy-Array enthalten sein, damit pandas anhand Ihrer konkreten Informationen den passenden DataFrame für Sie erstellen kann.
Ein Vorteil der Verwendung von pandas DataFrames liegt darin, dass die Funktion .DataFrame() viele verschiedene Strukturen als Eingabe akzeptiert. Auch wenn Sie Strukturen erstellen, die andere als NumPy-Strukturen nutzen, funktioniert der Prozess weitgehend gleich: Sie übergeben auch hier Ihre Arrays an die .DataFrame()-Funktion und weisen pandas dann an, die Informationen zum Erstellen Ihres neuen DataFrame zu verwenden.
Sie können sogar einen DataFrame als Eingabe für einen neuen DataFrame verwenden. Dazu verwenden Sie my_df = pd.DataFrame() und fügen Ihre Eingabedaten in die Formel ein.
Die Schlüssel Ihres ursprünglichen Wörterbuchs sind im Index Ihrer Series und damit in Ihrem DataFrame enthalten. Nach Abschluss des Imports werden Ihre Schlüssel automatisch sortiert.
Sie können die shape-Eigenschaft in Verbindung mit der .index-Eigenschaft verwenden, um sich über die Dimensionen Ihres neu erstellten DataFrame zu informieren. Dadurch erhalten Sie Angaben zu Höhe und Breite. Wenn Sie nur die Höhe ermitteln möchten, verwenden Sie die .LEN()-Funktion (wiederum in Verbindung mit der .index-Eigenschaft), die Ihnen die gewünschte Angabe zeigt.
Mit diesen Methoden ermitteln Sie die Dimensionen Ihres DataFrame einschließlich aller NaN-Werte. Dagegen finden Sie mit df[0].count() die Höhe des DataFrame ohne NaN-Werte heraus.
Indizierung in pandas DataFrames
Sie können sich die Indizierung von Daten so vorstellen wie eine Indizierung physischer Objekte in einer Sammlung: Beim Indizieren in Pandas werden Daten also sortiert und organisiert, indem die konkreten Werte, Zeilen und Spalten ausgewählt werden, mit denen Sie arbeiten möchten.
Die Indizierung, die Sie mit pandas DataFrame durchführen können, ähnelt der entsprechenden Vorgehensweise in Excel. Der größte Unterschied besteht darin, dass die Indizierung in pandas ausführlicher und vielseitiger ist: Ihnen stehen mehr Möglichkeiten zur Verfügung, Ihre Daten wie gewünscht zu bearbeiten.
In pandas wählen Sie zu Beginn der Indizierung die Datenzeilen und/oder -spalten in Ihrem DataFrame aus, mit denen Sie arbeiten möchten. Die konkrete Auswahl kann sehr unterschiedlich ausfallen. Manchmal werden Sie nur wenige Zeilen, aber alle Spalten verwenden wollen, in anderen Fällen ist es genau umgekehrt. Möglicherweise benötigen Sie auch nur eine Handvoll bestimmter Zeilen und Spalten.
Da Sie bestimmte Teilmengen von Daten auswählen, wird die Indizierung manchmal auch als Teilmengenauswahl bezeichnet.
Sprechen wir nun darüber, wie die Indizierung in pandas DataFrame funktioniert.
Sie können in Pandas vier verschiedene Indizierungstechniken verwenden. Wir wollen Ihnen hier einen kurzen Überblick über die einzelnen Varianten geben. Zunächst gibt es die Indizierungsoperatorfunktion df[]. Sie können auch df.loc[] verwenden, wenn Sie mit Labeln arbeiten. df.iloc[] wird hauptsächlich für Daten, die sich auf Positionen beziehen, und/oder für ganzzahlige Daten verwendet. Schließlich gibt es noch df.ix[], eine Funktion sowohl für Label- als auch für ganzzahlige Daten.
Die vier gerade erwähnten Indizierungsstile werden Indexer genannt und gehören zu den gängigsten Methoden zur Indizierung von Daten.
Iterieren über einen pandas-DataFrame
Es empfiehlt sich, auf den Fall vorbereitet zu sein, dass Sie dieselbe Anweisungsgruppe in pandas DataFrame wiederholt ausführen – d. h. über Zeilen iterieren – müssen.
Dies ist eine weitere Funktion, die in pandas recht einfach umzusetzen ist. Zu Einrichtung der Iteration sollten Sie sowohl eine for-Schleife als auch einen .iterrows()-Befehl verwenden. Damit können Sie Ihre DataFrame-Zeilen in Form von (Index, Series)-Paaren in eine Schleife einfügen.
So erhalten Sie (Index, Zeile)-Tupel in Ihren Ergebnissen.
Wenn Sie in pandas iterieren, weisen Sie den DataFrame an, wie ein Wörterbuch zu iterieren. Das bedeutet, dass Sie über die Schlüssel des Objekts iterieren und die Elemente nacheinander in Zeilen und Spalten aufnehmen.
Vorteile der Nutzung von pandas DataFrames
- Sie können problemlos Daten aus verschiedenen Datenbanken und in unterschiedlichen Datenformaten laden:
- Sie können mit vielen verschiedenen Datentypen verwendet werden.
- Sie erlauben ein intuitives Merging und Joining von Datensets mit gemeinsamem Schlüssel, um eine vollständige Sicht zu erhalten.
- Datensätze innerhalb eines DataFrame lassen sich segmentieren.
- Sie ermöglichen intelligentes labelbasiertes Slicing, kreative Indizierung und die Teilmengenbildung umfangreicher Datasets.
- Sie unterstützen schnelles Aggregieren und Zusammenfassen, um mithilfe von integrierten Funktionen aussagekräftige Statistiken aus Ihren Daten zu generieren.
- Sie erlauben die Definition eigener Python-Funktionen mit bestimmten Berechnungsaufgaben und deren Anwendung auf Ihre DataFrame-Datensätze.
- Die spezielle Syntax hilft Ihnen, mehr Arbeit mit weniger Schreibaufwand zu erledigen.
- Sie können in ein oder zwei Zeilen dasselbe tun, wofür Sie in C++ oder Java bis zu 15 Zeilen benötigen.
- Sie optimieren Ihre Arbeitsabläufe, erledigen täglich mehr und erhöhen die Menge der Daten, die Sie tatsächlich verarbeiten und analysieren können.
- Sie bieten Zugriff auf eine Vielzahl von Funktionen, die alle vollständig mit Python kompatibel sind, da pandas für den Einsatz mit Python entwickelt wurde.
- Sie sind durch die Kombination von Python und pandas besser zugänglich, da viele Branchenfachleute Python gut beherrschen.
- Sie bewältigen auch große Datenmengen mit Leichtigkeit und Effizienz sowie – dank der bereits erwähnten Syntax – sehr schnell.
- Sie passen Ihren Umgang mit Daten dank der flexiblen Datenverwaltung an: Sie können Daten ganz einfach bearbeiten und alle erforderlichen Funktionen darauf anwenden.
- Sie sind niederschwellig, da sie quelloffen sind, sodass jeder, der sie braucht, sie nutzen kann.
- Sie sind mit vielen verschiedenen Programmiersprachen unterschiedlichster Art kompatibel – nicht nur mit jenen, für die sie entwickelt wurden. Beispielsweise funktionieren sie mit Java und HTML einwandfrei.
- Sie lassen sich leicht in andere Formate konvertieren, z. B. JSON.
Die 5 besten Visualisierungstools für pandas-DataFrames
Obwohl pandas DataFrame Benutzern die Möglichkeit bietet, viele verschiedene Funktionen zu nutzen und Daten, die sie in die pandas Bibliothek eingeben, flexibel zu manipulieren, ist es nicht als hochgradig visuelles Werkzeug konzipiert. Im Grunde gewährt es Ihnen lediglich einen Blick hinter die Kulissen.
Das ist in vielerlei Hinsicht unglaublich nützlich. So brauchen Sie beispielsweise manchmal eine visuelle Darstellung der Daten, die Sie eingeben.
Betrachten Sie etwa, wie pandas im Vergleich zu einem ähnlichen Tool wie Excel abschneidet. In Excel können Sie auf ein paar Schaltflächen klicken und Ihre rein numerischen Daten automatisch in ein optisch ansprechendes Diagramm, eine Tabelle oder eine andere Darstellung verwandeln. pandas verfügt nicht über eine derartige Funktionalität.
Aus diesem Grund müssen Sie sich abseits von pandas DataFrame selbst nach Tools zur Datenvisualisierung umsehen.
Im Folgenden haben wir die fünf besten DataFrame-Visualisierungstools zusammengestellt. Die ersten beiden sind JavaScript-Tools, während es sich bei den anderen drei um Datenanalyseanwendungen handelt, die nicht mit Java in Verbindung stehen. Wir gehen auf die Details jedes Tools ein und zeigen Ihnen, warum es nützlich ist und die von uns vergebene Bewertung erhalten hat.
Werfen wir zunächst einen Blick auf die beiden besten Tools und darauf, warum gerade JavaScript-Tools diese Plätze einnehmen.
JavaScript-Tools
Ursprünglich als „LiveScript“ bezeichnet, ist JavaScript heute dank seiner flexiblen und dynamischen Natur eine der beliebtesten Programmiersprachen. Die verwendete Syntax ähnelt der von C, einer anderen weit verbreiteten Sprache.
Mithilfe von JavaScript können Sie interaktive Webseiten erstellen. Sie können auch bestehende Webseiten anpassen. Wie pandas DataFrame ist auch JavaScript in der Lage, Daten zu manipulieren, d. h., Sie können damit Berechnungen durchführen oder datenbasierte Schlussfolgerungen verifizieren. Außerdem ist es nützlich für alle diejenigen, die dynamischen Text in HTML- oder CSS-Dokumente einfügen möchten.
In diesem Beispiel betrachten wir konkret diejenigen JavaScript-Tools, die zur Visualisierung von pandas DataFrame verwendet werden können.
Der Grund dafür, dass JavaScript-Tools die ersten beiden Plätze auf unserer Liste der geeignetsten Visualisierungstools belegen, liegt darin, dass sich JavaScript als Sprache ständig weiterentwickelt. JavaScript ist nicht nur deswegen weit verbreitet, weil es sehr nützlich ist, sondern auch, weil es stetig wächst und besser wird, je mehr Menschen es nutzen. Daher zeigen sich Tools, die mit dieser Sprache erstellt werden, flexibler und können sich an die Bedürfnisse ihrer Benutzer anpassen.
Betrachten wir nun zunächst Qgrid, das beste JavaScript-Tool für die Visualisierung von pandas-DataFrames, bevor wir uns mit PivotTable.js dem zweitbesten Tool für diesen Zweck zuwenden.
1. Qgrid
Qgrid wurde von Quantopian entwickelt und verleiht Ihrem DataFrame durch Verwendung der SlickGrid-Komponente zusätzliche Interaktivität. Damit können Sie die Daten in Ihrem pandas-DataFrame in einer angezeigten Version sortieren und filtern. Qgrid ist ein Widget für das Jupyter-Notebook.
Mit Qgrid können Sie Ihre Daten nach Typ filtern. Das bedeutet, dass Sie mit Qgrid Zugang zu einem benutzerfreundlichen Filtersystem erhalten.
Eine besonders nützliche Funktion von Qgrid im Bereich der Datenvisualisierung ist die Möglichkeit, die Rendering-Funktionen zu konfigurieren. Wenn Sie Ihre Konfigurationen fertiggestellt haben, können Sie Ihre ausgewählten Daten in einem DataFrame lesen. Dadurch eignet sich Qgrid besonders gut für die Datenmanipulation sowie für jeden, der seine Daten genau unter die Lupe nehmen muss.
Werfen wir einen kurzen Blick auf die Arbeitsweise von Qgrid.
Zur Verwendung weisen Sie QGridLayout unter Zuhilfenahme seines übergeordneten Layouts oder mit einem parentWidget() Speicherplatz einer bestimmten Größe zu. Das Tool teilt diesen Bereich dann in Zeilen und Spalten auf und platziert jedes Widget, das ihm zugewiesen wurde, in der entsprechenden Zelle.
2. PivotTable.js
PivotTable.js ist ein JavaScript-Modul, das eine Pivot-Tabellenbibliothek nutzt und den zweiten Platz auf unserer Liste der besten Tools für pandas einnimmt. Hiermit können Sie Daten zusammenfassen und pivotieren, um die Interaktion mit Ihren Daten einfacher und übersichtlicher zu gestalten.
Ein großer Vorteil von PivotTable.js besteht darin, dass es wirklich sehr benutzerfreundlich ist. Sie müssen nur klicken und ziehen, und schon können Sie die Funktionen umfassend nutzen.
Zu diesen Funktionen gehören eine einfache Visualisierung sowie die statistische Analyse der Daten in Ihrem pandas-DataFrame. Es ist ein tolles Tool zum Pivotieren und Zusammenfassen von Daten: Sie erhalten damit einen Überblick über die Daten in Ihrem pandas-DataFrame, der auf einen Blick zu erfassen ist. Außerdem können Sie, nachdem Sie eine Tabelle erstellt haben, die darin enthaltenen Daten filtern, was Ihnen zusätzlichen Nutzen mit demselben Widget bietet.
PivotTable.js ist auch nützlich, um Pivotdiagramme und -tabellen auf pandas DataFrame zu ziehen und dort abzulegen. Mithilfe dieses Verfahrens können Sie Tabellen aus Jupyter und IPython Notebook übertragen, was Ihnen mehr Flexibilität in Bezug auf die Daten bietet, die Sie in Ihre pandas-Bibliothek eingeben.
Anwendungen zur Datenanalyse
pandas DataFrame ist, wie wir bereits festgestellt haben, äußerst nützlich für alle diejenigen, die ihre Daten analysieren möchten.
Das Arbeiten mit Daten kann kompliziert sein. Wenn Daten erzeugt werden, werden sie nicht automatisch organisiert, sofern Sie sie nicht in das richtige Tool eingeben oder die korrekten Formeln auf sie anwenden. Deswegen besteht ein zentraler Nutzen von Datenanalyseanwendungen darin, die Analyse von Daten zu beschleunigen, was selbst für gut organisierte Daten gilt: Alles geht viel schneller, wenn Sie eine Funktion programmieren können, die das für Sie erledigt.
In diesem Abschnitt werden wir uns die drei Datenanalyseanwendungen ansehen, die am besten geeignet sind, um die in Ihrem pandas-DataFrame gespeicherten Informationen zu visualisieren.
3. pandasGUI
pandasGUI ist eine auf Python aufsetzende Bibliothek, die zur Unterstützung bei der Datenmanipulation und der zusammenfassenden Statistik erstellt wurde. Funktionen werden über eine grafische Benutzeroberfläche (GUI) auf die Daten in Ihrer DataFrame-Bibliothek angewendet, d. h., Sie führen die gewünschten Operationen auf der Oberfläche aus. pandasGUI ist so konzipiert, dass Sie Befehle in die UI (Benutzeroberfläche) eingeben können, die dann vom Programm in pandas selbst ausgeführt werden.
Ein kurzer Hinweis für alle, die pandasGUI installieren möchten: Am besten richten Sie eine neue, separate virtuelle Umgebung für diesen speziellen Zweck ein. Dann können Sie Ihre pandasGUI-Bibliothek in dieser Umgebung installieren. Auf diese Weise erhalten Sie eine saubere Installation und können das Tool schneller verwenden.
Wenn Installation und Einrichtung abgeschlossen sind, können Sie sofort loslegen. Übergeben Sie der Funktion Ihren DataFrame. pandasGUI wird dann automatisch mit Zeilen und Spalten gefüllt, die aus Ihrem Datenset ausgelesen werden. Sie können mit dieser Methode sogar mehrere Datensets gleichzeitig laden und auf diese Weise einen einfachen Überblick über eine Vielzahl von Informationen auf einmal erhalten.
Sobald Ihre Daten erfolgreich an die Funktion übergeben wurden, können Sie über die grafische Benutzeroberfläche darauf zugreifen. Dort können Sie mit ihnen interagieren, sie bearbeiten, analysieren und auf vielfältige Weise manipulieren. Das funktioniert mehr oder weniger wie bei einer Excel-Tabelle – zumindest, was die verfügbaren Funktionen und das Aussehen des Layouts betrifft.
Daten im GUI-Format können auch in andere Formate kopiert und eingefügt werden. Das macht die Übertragung der Daten in das Visualisierungstool Ihrer Wahl besonders einfach, wenn Sie ein Diagramm oder einen Graphen erstellen möchten.
Im Grunde genommen ist pandasGUI besonders einfach zu bedienen. Außerdem ist es sehr benutzerfreundlich, und zwar auch für weniger erfahrene Programmierer. Deshalb hat es sich diesen dritten Platz unter den Datenvisualisierungstools für pandas DataFrame redlich verdient.
4. Tabloo
Tabloo beschreibt sich selbst als „minimalistische Dashboard-App zur Visualisierung von Tabellendaten“. Sie können es in Python ausführen, weswegen es auch mit pandas vollständig kompatibel ist.
Dieses Datenvisualisierungstool verwendet ein Flask-Backend, ist aber auch mit anderen Backend-Sprachen kompatibel. Über das Backend erhalten Sie eine einfache Oberfläche, über die Sie die Daten, die Sie in Ihre pandas DataBase eingeben, visuell sinnvoll darstellen können.
Mit Tabloo können Sie Ihre Daten auch grafisch aufbereiten. Sie müssen daher nicht auf eine externe Software zurückgreifen, um Grafiken und Diagramme zu erstellen. Das ist praktisch, wenn Sie nach einer schnellen Visualisierung suchen und nicht erst jede Menge weiterer Tools ausprobieren möchten.
In Bezug auf die Nutzung weist Tabloo viele Gemeinsamkeiten mit pandasGUI auf. Außerdem organisiert es die Daten in Zellen, die dann mit denselben Funktionen bearbeitet werden können, die auch pandasGUI ausführen kann. Es ist jedoch etwas schwieriger, in Tabloo mehrere Filter gleichzeitig zu nutzen, während pandasGUI sehr gut damit zurechtkommt.
Die Syntax, mit der Tabloo arbeitet, ist eine Abfragesyntax – wie bei pandasGUI.
Ein wesentlicher Unterschied zwischen pandasGUI und Tabloo besteht im größeren Funktionsumfang von pandasGUI: Sie haben damit einfach mehr Möglichkeiten, Ihre Daten zu bearbeiten. Daher rangiert Tabloo auf dieser Liste auch weiter hinten, obwohl es den Benutzern unbestreitbar nützliche Funktionen bietet.
5. D-Tale
Mit einer Architektur, die mit der von Tabloo vergleichbar ist, nimmt D-Tale den letzten Platz auf dieser Liste ein. D-Tale verwendet wie Tabloo ein Flask-Backend; hinzu kommt ein React-Frontend, mit dem Sie die umfangreichen Optionen, die D-Tale Ihnen bietet, voll ausschöpfen können.
Die Benutzeroberfläche von D-Tale ist, wie der Name der Anwendung vermuten lässt, sehr detailliert. Sie können darauf zugreifen, indem Sie Ihre pandas-Daten in D-Tale importieren. Die Daten werden für Sie dann automatisch in Zeilen und Spalten organisiert, die mit einer Vielzahl von Sortierfunktionen ausgestattet sind, mit denen Sie das Datenset genau nach Ihren Wünschen anpassen können. Sie können Funktionen wie Sperren, Ausblenden, Löschen und Umbenennen usw. für jede beliebige Zeile oder Spalte verwenden.
Mit D-Tale können Sie auch visuelle Darstellungen Ihrer Daten erstellen, deren Bandbreite von Diagrammen bis zu Histogrammen und darüber hinaus reicht.
Eine nützliche Funktion von D-Tale ist die Möglichkeit, jederzeit Code aus der Anwendung zu exportieren. Dieser kann dann ganz leicht in andere Anwendungen eingefügt werden, um etwa seine Gültigkeit zu prüfen oder die Daten in anderer Weise zu verarbeiten.
Auch können Sie mit D-Tale die Formatierung Ihrer Daten selbst erledigen. Nehmen wir etwa an, Sie haben Datumsangaben in Ihrem Datenset. Wenn Sie möchten, dass Ihre Datumsangaben Monate und Tage durch einen Punkt statt einen Schrägstrich voneinander trennen, können Sie dies in D-Tale einstellen.
pandas-DataFrames kurz und bündig
Wenn Sie Daten verarbeiten, manipulieren und analysieren möchten, ist pandas DataFrame der richtige Begleiter für Sie.
Es handelt sich um eine Bibliothek, die für die Nutzung in Verbindung mit Python entwickelt wurde. Daher kann jeder, der auch nur einigermaßen mit Python vertraut ist, diese Bibliothek nutzen. Außerdem kann es Daten in vielen verschiedenen Formaten verarbeiten. Sie können Ihre Daten also ganz leicht eingeben – ganz gleich, in welcher Form sie vorliegen.
Wir haben die wesentlichen Vorteile des Einsatzes von pandas in diesem Artikel behandelt, möchten Ihnen aber dennoch eine kurze Zusammenfassung geben. Mit pandas DataFrame können Sie Daten schnell und einfach aggregieren. Es ist außerdem mit mehreren Visualisierungstools kompatibel und bietet so maximale Flexibilität. Anders als andere Skriptsprachen kann es viele Dinge mit nur wenigen Codezeilen erledigen, wodurch es bei regelmäßiger Nutzung schneller ist.
Mit einem Wort: pandas DataFrame ist nützlich – und zwar für jeden, der seine Daten verarbeiten möchte!