None

Dataframes erklärt

Dataframes verleihen der Datenarbeit konzeptionelle Konsistenz.Max4e Photo | shutterstock.com



Die meisten Menschen sind mit Daten in Form von Spreadsheets vertraut: Verschiedene, gelabelte Spalten halten unterschiedliche Datentypen bereit – etwa Name, Adresse oder Alter. Auf diese Weise funktionieren auch Datenbanken, wobei jede enthaltene Tabelle nach einem strikten Schema aufgebaut ist.  



Bei Dataframes handelt es sich um Strukturen, die in der Datenwissenschaft zur Anwendung kommen und ähnlich funktionieren wie Spreadsheets und Datenbank-Tabellen. Allerdings sind sie im Vergleich deutlich effizienter und leistungsfähiger. Glücklicherweise lassen sich Dataframes auch aus Spreadsheets oder Datenbank-Tabellen generieren. Das gewährleistet, wesentlich schneller mit den importierten Daten arbeiten zu können.



Dataframe-Grundlagen



Ein Dataframe ist eine zweidimensionale Datenstruktur, bei der die Datenelemente in gelabelten Spalten organisiert sind, die bestimmte Datentypen enthalten. Dataframes sind also konzeptionell näher an Datenbanken als an Spreadsheets – vereinen jedoch die Vorteile beider Konzepte. Zum Beispiel können Sie auf eine Spalte auch über ihren Namen zugreifen und nicht nur über eine Indexposition.   



Jeder Dataframe weist in der Regel ein Schema auf. Dabei handelt es sich um eine Beschreibung des Namens und eventuell des Datentyps für jede Spalte. Die Datentypen, die dabei unterstützt werden, sollten Entwicklern bekannt sein – Ganzzahlen, Gleitkommazahlen, Strings und so weiter. Es ist auch möglich, leere beziehungsweise NULL-Werte in einem Dataframe zu speichern. Um die Daten möglichst konsistent zu halten, erlauben es einige Dataframes auch, bestimmte Datentypen für eine Spalte zu spezifizieren.



Erstellen lässt sich ein Dataframe, indem Sie Daten aus einer vorhandenen Quelle oder über eine API importieren. Mit der Pandas-Bibliothek können Sie beispielsweise Python-Datenstrukturen als Basis für Dataframes verwenden:  



import pandas as pd



data = {



    "Title": ["Blade Runner", "2001: a space odyssey", "Alien"],



    "Year": [1982, 1968, 1979],



    "MPA Rating": ["R","G","R"]



}



df = pd.DataFrame(data)



Dataframe-Applikationen



Nahezu alle wichtigen Data-Science-Bibliotheken und -Frameworks bieten Support für Dataframe-ähnliche Strukturen:




Die Programmiersprache R wird allgemein als Wiege des Dataframe-Konzepts angesehen – obwohl das zuvor bereits in anderer Form existierte).



Die populäre Datenplattform Spark verfügt ein eigenes Dataframe-System.



Sowohl die Python-Bibliothek Pandas als auch ihr geschwindigkeitsoptimierter Cousin Polars setzen auf Dataframes.



Die Analytics-Datenbank DuckDB kombiniert die Annehmlichkeiten von Dataframes mit der Performanz eines vollumfänglichen Datenbanksystems.




Dabei ist es möglich, dass die jeweils zugrundeliegende Applikation ausschließlich spezifische Dataframe-Formate unterstützt. Pandas bietet  in einem Dataframe beispielsweise Datentypen für Sparse-Datenstrukturen. Im Gegensatz dazu verfügt Spark nicht über einen expliziten Sparse-Datentyp. Um Sparse-Daten in einem Spark-Dataframe zu nutzen, ist deshalb ein zusätzlicher Konvertierungsschritt nötig.



Eine feststehende Version eines Dataframes existiert nicht. Vielmehr handelt es sich um ein Konzept, das von diversen Anwendungen unterschiedlich umgesetzt und angewandt wird. So unterstützen beispielsweise Spark-Dataframes keine stark typisierten Spalten. Stattdessen wird jede Spalte als Java-Objekt betrachtet. Ein weiterer Spark-Datentyp – das Dataset – fügt Typisierungsgarantien für Spalten hinzu, um eine optimierte Verarbeitung zu ermöglichen.



Theoretisch können Dataframes jede Art von Daten-Layout verwenden. In der Praxis werden Informationen jedoch meist spaltenbasiert gespeichert. Das gewährleistet eine schnellere Datenverarbeitung als bei einem zeilenbasierten Format, verlangsamt es allerdings, Zeilen einzufügen (insofern das überhaupt zulässig ist).



Dataframe-Vorteile



Die Attraktivität von Dataframes begründet sich im Wesentlichen in folgenden Eigenschaften:




High-Performance-Prozesse. Dataframes bieten bequeme Methoden, um Daten in großem Maßstab zu sortieren und umzuwandeln. Die meisten Dataframe-Implementierungen beinhalten auch Methoden, um Daten zu filtern, zu transponieren oder Pivot-Tabellen-ähnliche Operationen durchzuführen. Das Wichtigste ist dabei, dass diese Methoden nicht erfordern, dass der Entwickler den Dataframe Schritt für Schritt durchläuft. Dataframes können deshalb als schnelle, atomare Operationen angewendet werden.



In-Memory-Verarbeitung. Dataframes liegen aus Speed-Gründen standardmäßig „in memory“. Dabei unterstützen einige Apps wie Daft oder Dask auch Dataframes, die größer als der Systemspeicher sind. Der Großteil der Dataframe-Arbeit läuft jedoch im Arbeitsspeicher ab – nicht auf der Festplatte. Auf ähnliche Weise lassen sich mit DuckDB auch Daten aus Gründen der Persistenz auf der Festplatte vorhalten. Auch in diesem Fall findet eine In-Memory-Verarbeitung statt.  



Praktische und konsistente Metapher. Mit einem Dataframe zu arbeiten, ist weniger abstrakt oder umständlich als beispielsweise mit einem einfachen, homogenen Daten-Array. Auch in diesem Fall ähnelt die Dataframe-Arbeit Tabellenkalkulationen und Datenbanken: Sobald Sie an einer Stelle mit einem Dataframe gearbeitet haben, lassen sich Vorgehen und Methoden leicht auf andere Inkarnationen übertragen.




Die konsistente Metapher, ist dabei der wichtigste Punkt: Der Bedarf für eine konsistente und vertraute Grundlage steigt proportional mit der Verbreitung von Data-Science-Frameworks und -Bibliotheken. (fm)



Sie wollen weitere interessante Beiträge rund um das Thema IT-Sicherheit lesen? Unser kostenloser Newsletter liefert Ihnen alles, was Sicherheitsentscheider und -experten wissen sollten, direkt in Ihre Inbox.