Zum Inhalt springen

Einführung in Pandas

  • Python

Pandas und Numpy sind die grundlegendsten Bibliotheken, wenn es um die Datenbearbeitung in Python geht. Dieser Beitrag gibt Einblick in die wichtigsten Grundlagen in dieser Bibliothek und kann auch als Spickzettel für die häufigsten Befehle genutzt werden.

Pandas bringt alle Werkzeuge mit, die man für jegliche Form der Datenmanipulation und -analyse benötigt. Mit Hilfe von speziellen Datenstrukturen können tabellenähnliche Objekte und Time-Series Daten gespeichert und verarbeitet werden. Pandas baut in vielen Fällen auf Numpy auf und steht also nicht in Konkurrenz zu dieser Bibliothek, wie manchmal behauptet wird.

import pandas as pd
import numpy as np

Pandas Objekterstellung

Pandas nutzt verschiedene Datenstrukturen, um Informationen speichern und verarbeiten zu können. In diesem Beitrag können wir leider nicht im Detail auf die verschiedenen Strukturen eingehen und verweisen deshalb auf unsere anderen Artikel, z.B. zu Pandas DataFrames.

Series

Das Pandas Series Objekt ist dem eindimensionalen Numpy Array ähnlich und kann verschiedene Datenstrukturen, wie Integers, Floats oder Strings aufnehmen.

s = pd.Series([1, 3, 5, np.nan, 6, 8])
s

Out: 
0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64

Im Output sehen wir zwei Spalten, obwohl wir nur Werte für die Series definiert haben. Die linke Spalte ist der Index, welcher per Default die Werte durchnummeriert. Wir können auf den Index und die Werte mit folgenden Befehlen zugreifen.

print(s.index)
print(s.values)

Out:
RangeIndex(start=0, stop=6, step=1)
[ 1.  3.  5. nan  6.  8.]

Natürlich können wir den Index auch frei definieren und dadurch einfacher und verständlicher auf die Elemente per Index zugreifen. Dadurch wird der Code auch einfacher zu lesen, wenn man statt Zahlen sprechenden Text für den Zugriff verwendet.

fruits = ['apples', 'oranges', 'cherries', 'pears']
quantities = [20, 33, 52, 10]
S = pd.Series(quantities, index=fruits)
print(S)

Out:
apples      20
oranges     33
cherries    52
pears       10
dtype: int64

DataFrame

Für eine ausführliche Erklärung zu DataFrames und vielen Code-Beispielen, kannst Du gerne auch unseren separaten Beitrag zu Pandas DataFrames lesen. Hier werden wir der Vollständigkeit halber nur die grundlegendsten Befehle zeigen.

Wir können einen DataFrame erstellen, indem wir ein Numpy Array weitergeben und die Spaltennamen definieren. Die einzelnen Zeilen der Tabelle können wir ähnlich zur Series über den Index aufrufen.

dates = pd.date_range("20220101", periods=6)
dates

Out:
DatetimeIndex(['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04',
               '2022-01-05', '2022-01-06'],
              dtype='datetime64[ns]', freq='D')

df = pd.DataFrame(np.random.randn(6, 2), columns=['column 1', 'column 2'])
df

Out:
            column 1  column 2
2022-01-01  1.764052  0.400157
2022-01-02  0.978738  2.240893
2022-01-03  1.867558 -0.977278
2022-01-04  0.950088 -0.151357
2022-01-05 -0.103219  0.410599
2022-01-06  0.144044  1.454274 

Daten anschauen

Die ersten und letzten Zeilen eines DataFrames können wir mit den folgenden Befehlen einsehen. In Klammern geben wir die Anzahl an Reihe an, die wir ausgegeben haben wollen. Der Default Wert ist fünf.

df.head()

Out:
            column 1  column 2
2022-01-01  1.764052  0.400157
2022-01-02  0.978738  2.240893
2022-01-03  1.867558 -0.977278
2022-01-04  0.950088 -0.151357
2022-01-05 -0.103219  0.410599

df.tail(3)

Out:
            column 1  column 2
2022-01-04  0.950088 -0.151357
2022-01-05 -0.103219  0.410599
2022-01-06  0.144044  1.454274 

Wenn wir eine kurze statistische Übersicht über die Daten in den einzelnen Spalten erhalten wollen, können wir das mit df.describe() tun:

df.describe()

Out:
       column 1  column 2
count  6.000000  6.000000
mean   0.933544  0.562881
std    0.807791  1.143871
min   -0.103219 -0.977278
25%    0.345555 -0.013479
50%    0.964413  0.405378
75%    1.567724  1.193355
max    1.867558  2.240893

Zusätzlich können wir uns die Daten auch direkt sortiert anschauen, indem wir den Spaltennamen angeben, nach dessen Werten wir sortieren wollen.

df.sort_values(by='column 2')

Out:
            column 1  column 2
2022-01-03  1.867558 -0.977278
2022-01-04  0.950088 -0.151357
2022-01-01  1.764052  0.400157
2022-01-05 -0.103219  0.410599
2022-01-06  0.144044  1.454274
2022-01-02  0.978738  2.240893

Daten selektieren

Unsere Ausführung in diesem Kapitel gelten bis auf wenige Ausnahmen auch genauso für Pandas Series Objekte, deshalb ersparen wir uns die Beispiele für Series Objekte. Eine Spalte des DataFrames können wir auswählen, indem wir den Namen direkt aufrufen.

df['column 1']

Out:
2022-01-01    1.764052
2022-01-02    0.978738
2022-01-03    1.867558
2022-01-04    0.950088
2022-01-05   -0.103219
2022-01-06    0.144044
Freq: D, Name: column 1, dtype: float64

Einzelne Zeilen des DataFrames rufen wir entweder über die gewünschten Nummerierung auf oder über die Indexe/Namen, die wir dafür vergeben haben.

df[0:3]

Out: 
            column 1  column 2
2022-01-01  1.764052  0.400157
2022-01-02  0.978738  2.240893
2022-01-03  1.867558 -0.977278

df["20220102":"20220104"]

Out:
            column 1  column 2
2022-01-02  0.978738  2.240893
2022-01-03  1.867558 -0.977278
2022-01-04  0.950088 -0.151357

Wenn wir nur die Werte filtern wollen, die eine bestimmte Bedingung erfüllen, definieren wir die Spalte und den Wert der erfüllt sein muss. Dabei müssen wir beachten, dass in Python Bedingungen mit dem Gleichzeichen, immer ein doppeltes Gleichzeichen benötigen.

df[df['column 1'] > 0.978738]

Out:
            column 1  column 2
2022-01-01  1.764052  0.400157
2022-01-02  0.978738  2.240893
2022-01-03  1.867558 -0.977278
2022-01-04  0.950088 -0.151357

Das soll es mit einer kurzen Einführung in die grundlegendsten Befehle in Pandas gewesen sein. Weiter geht es mit einem zweiten Teil, der in wenigen Tagen folgt.

Das solltest Du mitnehmen

  • Pandas ist eine grundlegende Bibliothek für die Datenbearbeitung, -manipulation und -analyse.
  • Sie ist eine Ergänzung zu Numpy und baut unter anderem auf Numpy Arrays auf.

Andere Beiträge zum Thema Pandas

  • Die offizielle Dokumentation von Pandas findest Du hier.
  • Dieser Beitrag baut hauptsächlich auf dem Tutorial von Pandas selbst auf. Dieses findest Du hier.
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.

Schlagwörter:
Cookie Consent mit Real Cookie Banner