Zum Inhalt springen

Pandas DataFrame – in 2 Minuten erklärt!

  • Python

Den DataFrame (kurz: DF) aus der Python Bibliothek Pandas kann man sich am einfachsten als tabellenähnliches Objekt vorstellen bestehend aus Daten, die in Zeilen und Spalten gespeichert sind. Pandas bietet, einfach gesprochen, dieselben Möglichkeiten wie strukturierte Arrays in Numpy mit dem Unterschied, dass die Zeilen und Spalten mit Namen angesprochen werden können, statt sie mit Zahlenindex aufrufen zu müssen.  Dadurch wird die Arbeit mit großen Datensätzen und vielen Spalten erleichtert und der Code verständlicher. 

DataFrame als Sammlung von Series Objekten

Das Series Objekt in Pandas ist ein ein-dimensionales Array mit einem veränderbaren Index für das Aufrufen von einzelnen Einträgen. In Python kann man ein solches Objekt mit folgendem Befehl erstellen:

import pandas as pd

area_dict = {‘California’: 423967, ‘Texas’: 695662, ‘New York’: 141297, ‘Florida’: 170312, ‘Illinois’: 149995}
area = pd.Series(area_dict)

Die Series hat als Index verschiedene amerikanische Bundesstaaten und die zugehörige Fläche des Staates in km². Eine zweite Series mit demselben Index, also den gleichen fünf amerikanischen Staaten, enthält die Einwohnerzahl pro Staat.

population_dict = {‘California’: 38332521, ‘Texas’: 26448193, ‘New York’: 19651127, ‘Florida’: 19552860, ‘Illinois’: 12882135}
population = pd.Series(population_dict)

Da beide Series Objekte den gleichen Index besitzen, können wir sie zu einem DataFrame Objekt zusammenfassen, mit den Indexwerten (die fünf Staaten) als Zeilen und die Kategorien (Fläche und Einwohnerzahl) als Spalten:

states_df = pd.DataFrame({‘population’: population, ‘area’: area})

Genau wie die Series Objekte davor, hat auch der DF weiterhin ein Index, über den die Zeilen gezielt angesprochen werden können:

states.index

Zusätzlich haben können auch die Spalten des tabellenähnlichen DFs über ihre Namen aufgerufen werden:

states.columns

DataFrame als spezialisiertes Dictionary

Ein anderer Ansatz zur Interpretation von DataFrame Objekten ist es als spezialisiertes Dictionary zu sehen, bei dem der DF eine Spalte auf ein Series Objekt innerhalb der Spalte verweist, genau wie ein Dictionary einen Key zu einem Wert zuordnet. Wir können es auch genauso abfragen wie ein Dictionary und erhalten dabei jedoch die ganze Spalte und nicht nur einen speziellen Wert:

states[‘area’]

DataFrame erstellen

Im Allgemeinen gibt es vier verschiedene Wege einen DF zu erstellen, die abhängig vom Use Case alle nützlich sein können:

  1. Aus einem einzelnen Series Objekt. Der DF ist eine Sammlung aus mehreren Series Objekten. Er kann jedoch auch aus einer einzelnen Series erstellt werden und weist dann nur eine Spalte auf:
pd.DataFrame(population, columns=[‘Population’]
  1. Aus einer Liste von Dictionaries. Selbst wenn nicht alle Dictionaries dieselben Keys besitzen, werden die fehlenden Werte mit NaN (‘not a number’) aufgefüllt. Die Anzahl der Spalten ergibt sich somit aus der Anzahl an eindeutigen Keys und die Zahl der Zeilen aus der Zahl an Dictionaries:
pd.DataFrame([{'a': 1, 'b': 2}, {'b': 3, 'c': 4}])
  1. Aus einem Dictionary von Series Objekten. Dieser Weg wurde bereits in den Abschnitten zuvor ausführlich beschrieben:
pd.DataFrame({‘population’: population, ‘area’: area})
  1. Aus einem zweidimensionale Numpy Array. Mehrere zweidimensionale Numpy Arrays können in einem DF zusammengefasst werden. Wenn keine Bezeichnungen als Spaltennamen gepflegt sind, werden Zahlen als Spaltenindex genutzt: 
pd.DataFrame(np.array([[1, 2], [3, 4]]), columns=[col1, col2'], index=['row1', row2’])

In anderen Programmiersprachen, wie R, ist es normal ein leeres Objekt zu erstellen und es dann mit einer Schleife schrittweise zu füllen, so wie man es in Python beispielsweise mit Listen tun kann. Diese Vorgehensweise ist bei Pandas DF zwar möglich, sollte aber, wenn möglich, nicht genutzt werden. Die Daten sollten erst in Listen oder Dictionaries gespeichert werden und dann in einem Schritt als DataFrame zusammengefasst werden. Diese Vorgehensweise spart massiv Zeit und Speicherkapazitäten (vgl. auch Stack Overflow).

Das solltest Du mitnehmen

  • Der Pandas DataFrame ist ein sehr wichtiges Element bei der Datenaufbereitung für Künstliche Intelligenz.
  • Der DataFrame kann sowohl als Sammlung von Series Objekten verstanden werden oder als spezialisiertes Dictionary.

Andere Beiträge zum Thema Pandas DataFrame

  • Die offizielle Dokumentation von Pandas findest Du hier.
close
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Cookie Consent mit Real Cookie Banner