zurück zum Artikel

Data Science: DataFrames.jl ist Julias Antwort auf Pythons pandas

Rainald Menge-Sonnentag

(Bild: alphaspirit/Shutterstock.com)

Das nun in Version 1.0 veröffentlichte Paket DataFrames.jl dient wie die Python-Library pandas zum Verarbeiten und Auswerten tabellarischer Daten.

Julia Computing hat Version 1.0 von DataFrames.jl verkündet. Das von der Community entwickelte Open-Source-Paket bietet eine Reihe von Werkzeugen zum Verarbeiten tabellarischer Daten mit der Programmiersprache Julia. Sein Design und die Funktionsweise sind an die Python-Library pandas angelehnt. Der Sprung auf Version 1.0 markiert eine ausreichende Reife für den produktiven Einsatz und stabilisiert die API. Außerdem soll das Release deutlich performanter arbeiten als die vorherige Version 0.22. Das Release bringt ansonsten vor allem Bugfixes und Bereinigungen der APIs mit.

Julia ist eine dynamische Programmiersprache und akuell in Version 1.6 verfügbar [1]. Sie funktioniert zwar als General Purpose Language, ist aber vor allem auf numerische und wissenschaftliche Anwendungen ausgelegt. Julia will die Vorzüge dynamischer und statischer Sprachen vereinen. Für die Bereiche Statistik und Data Science existieren einige Libraries, von denen zahlreiche innerhalb der Standardbibliothek von Julia eingebunden sind.

DataFrames.jl zielt auf typische Data-Science-Anwendungen und soll vor allem für diejenigen den Weg zu Julia ebnen, die bereits Anwendungen in Python mit pandas oder in R mit data.frame, data.table und dplyr in R entwickelt haben. Das Paket bietet eine Anbindung an zahlreiche Julia-Libraries für die Datenverarbeitung in den Bereichen Statistik und Machine Learning.

Im Python-Ökosystem spielt pandas eine maßgebliche Rolle für Data-Science-Anwendungen. Die Library ist zwar erst Anfang 2020 in Version 1.0 erschienen [2], befand sich aber weit vor dem Versionssprung in zahlreichen Projekten im produktiven Einsatz. Ihre Geschichte geht ins Jahr 2008 zurück – vier Jahre vor den Anfängen der Programmiersprache Julia.

Für Julia existieren zahlreiche Libraries, da die Maintainer der Sprache auf einen schlanken Kern setzen, den Entwicklerinnen und Entwickler um passende Bibliotheken erweitern können. Data Frames ist unter anderem auf das Zusammenspiel mit dem Statistikmodul der Standard-Library von Julia Statistics [3] ausgelegt. Daneben bietet es eine Integration mit den ebenfalls in der Standardbibliothek verankerten Modulen Linear Algebra [4] und Sparse Arrays [5]. Die Anbindung an das Meta-Package zum Verwenden zahlreicher statistischer Pakete StatsKit.jl [6] ist ebenfalls vorgesehen.

Sonderheft zu Machine Learning

(Bild: alphaspirit/Shutterstock.com)

Das iX-Developer-Sonderheft "Machine Learning" [7] behandelt auf 148 Seiten unter anderem ML-Frameworks, Textanalyse, Reinforcement Learning und die Produktivstellung von Modellen. Im Fokus steht die praktische Anwendung, und zu den meisten Artikeln existieren Jupyter-Notebooks als Basis für eigene ML-Projekte.

Ein Artikel widmet sich den Vorzügen, die die Programmiersprache Julia für Machine-Learning-Anwendungen mitbringt. Ein weiterer Text behandelt detailliert die Data-Science- und ML-Pakete für Python.

Für Machine-Learning-Anwendungen lässt sich DataFrames.jl mit dem ML-Framework MLJ.jl kombinieren [8]. Das ScikitLearn.jl spannt den Bogen [9] zu einer weiteren wichtigen Python-Library und dient als Wrapper für scikit-learn. Für mathematische Darstellungen dient das Paket Plots.jl [10], das sich syntaktisch an der Python-Library matplotlib orientiert.

Die Seite zu DataFrames.jl weist auf zwei weitere Pakete zur Verarbeitung tabellarischer Daten hin, die für andere Zwecke besser geeignet sind. JuliaDB.jl ist für große Datenmengen [11] ausgelegt, die nicht in den Arbeitsspeicher passen – auch hierfür gibt es ein Pendant in der Python-Welt mit Dask. Schließlich soll TypedTables.jl [12] Tabellen mit relativ stabilen Strukturen und einer überschaubaren Anzahl Spalten besonders performant verarbeiten.

Details zu DataFrames.jl 1.0 lassen sich der Dokumentationsseite entnehmen [13]. Die Neuerungen im 1.0-Release finden sich in den Release Notes [14] auf GitHub. Das Paket lässt sich über die interaktive Kommandozeile der Programmiersprache Julia REPL (Read-Eval-Print Loop) folgendermaßen installieren:

using Pkg; Pkg.add("DataFrames")

Die Dokumentationsseite führt einige Beispielanwendungen und Tutorials auf, die den Einstieg in die Arbeit mit dem Paket vereinfachen sollen.

[Update 4.5. 12:00 Uhr] Der Anfang wurde angepasst, um darauf hinzuweisen, dass es sich um ein Community-Projekt handelt.

(rme [15])


URL dieses Artikels:
https://www.heise.de/-6035356

Links in diesem Artikel:
[1] https://www.heise.de/news/Programmiersprache-Julia-1-6-ist-eine-LTS-Version-und-praekompiliert-parallel-5999356.html
[2] https://www.heise.de/meldung/Python-Bibliothek-pandas-in-Version-1-0-erschienen-4649252.html
[3] https://docs.julialang.org/en/v1/stdlib/Statistics/
[4] https://docs.julialang.org/en/v1/stdlib/LinearAlgebra/
[5] https://docs.julialang.org/en/v1/stdlib/SparseArrays/
[6] https://github.com/JuliaStats/StatsKit.jl
[7] https://shop.heise.de/ix-developer-machine-learning-2020/?wt_mc=intern.shop.shop.ix_komp_ml20.art1.textlink.textlink
[8] https://github.com/alan-turing-institute/MLJ.jl
[9] https://cstjean.github.io/ScikitLearn.jl/stable/
[10] https://docs.juliaplots.org/latest/
[11] https://juliadb.juliadata.org/stable/
[12] https://typedtables.juliadata.org/stable/
[13] https://dataframes.juliadata.org/stable/
[14] https://github.com/JuliaData/DataFrames.jl/releases/tag/v1.0.0
[15] mailto:rme@ix.de