Teil 17: Arbeiten mit Pandas Series

In Data Science ist Pandas eine der wichtigsten Bibliotheken, um Daten zu analysieren und zu transformieren. Eine der grundlegenden Datenstrukturen in Pandas ist die Series – eine ein-dimensionale, beschriftete Liste, die sowohl Werte als auch Indizes enthält. In diesem Teil lernst du, wie man Series erstellt, manipuliert und analysiert.


1. Was ist eine Pandas Series?

Eine Series ist vergleichbar mit einem Array, jedoch mit flexiblen Indizes:

  • Index: Beschriftungen für die Werte
  • Werte: Daten, die gespeichert werden
import pandas as pd

# Series aus einer Liste erstellen
zahlen = pd.Series([10, 20, 30, 40])
print(zahlen)

Ausgabe:

0    10
1    20
2    30
3    40
dtype: int64
  • Links: Index
  • Rechts: Werte

2. Series mit benannten Indizes

Du kannst eigene Labels für den Index vergeben:

zahlen = pd.Series([10, 20, 30], index=["a", "b", "c"])
print(zahlen)

Ausgabe:

a    10
b    20
c    30
dtype: int64
  • Zugriff über Index:
print(zahlen["b"])  # 20

3. Series aus einem Dictionary

Ein Dictionary kann direkt in eine Series umgewandelt werden:

daten = {"Anna": 28, "Ben": 35, "Clara": 22}
s = pd.Series(daten)
print(s)

Ausgabe:

Anna     28
Ben      35
Clara    22
dtype: int64

4. Grundlegende Operationen

Pandas Series unterstützen mathematische Operationen direkt auf allen Werten:

zahlen = pd.Series([10, 20, 30, 40])
print(zahlen + 5)  # [15, 25, 35, 45]
print(zahlen * 2)  # [20, 40, 60, 80]
  • Operationen wirken elementweise

Statistik mit Series

print(zahlen.mean())  # Durchschnitt
print(zahlen.sum())   # Summe
print(zahlen.max())   # Maximum
print(zahlen.min())   # Minimum

5. Zugriff auf Daten

Indexbasierter Zugriff

print(zahlen[0])     # 10
print(zahlen[:2])    # erste zwei Werte

Labelbasierter Zugriff

zahlen = pd.Series([10, 20, 30], index=["a", "b", "c"])
print(zahlen["a"])      # 10
print(zahlen[["a","c"]])  # a und c

6. Filtern und Bedingte Auswahl

zahlen = pd.Series([10, 20, 30, 40])
# Werte > 20 auswählen
print(zahlen[zahlen > 20])  # 30, 40
  • Nützlich, um Bedingungen auf Daten anzuwenden

7. Operationen mit Lambda-Funktionen

zahlen = pd.Series([10, 20, 30])
# Quadriere alle Werte
s_quadrat = zahlen.apply(lambda x: x**2)
print(s_quadrat)

Ausgabe:

0    100
1    400
2    900
dtype: int64
  • .apply() erlaubt individuelle Transformationen

8. Series kombinieren

s1 = pd.Series([1, 2, 3], index=["a", "b", "c"])
s2 = pd.Series([4, 5, 6], index=["a", "b", "c"])

# Addition
s3 = s1 + s2
print(s3)

Ausgabe:

a    5
b    7
c    9
dtype: int64
  • Indizes passen automatisch zusammen

9. Fehlende Werte in Series

s = pd.Series([1, None, 3, None, 5])
print(s.isnull())      # True für fehlende Werte
print(s.fillna(0))     # fehlende Werte mit 0 ersetzen
  • .isnull() prüft fehlende Werte
  • .fillna() ersetzt NaN-Werte

10. Praxisbeispiel: Altersanalyse

kunden = pd.Series([28, 35, 22, 30], index=["Anna", "Ben", "Clara", "David"])

# Durchschnittsalter
durchschnitt = kunden.mean()
print(f"Durchschnittsalter: {durchschnitt:.2f}")

# Alle über 30
print(kunden[kunden > 30])

# Alterswerte verdoppeln
print(kunden.apply(lambda x: x*2))
  • Zeigt Filtern, Statistik und Transformation in einer Series

11. Vorteile der Pandas Series

  1. Indexierung – Werte leicht zugänglich
  2. Automatische Alignment-Funktion bei Operationen
  3. Integration mit DataFrame – Series ist Baustein für DataFrames
  4. Statistik- und Transformationsmethoden direkt verfügbar
  5. NaN-Unterstützung – fehlende Werte einfach handhaben

12. Tipps für Data Science

  • Verwende Series für ein-dimensionale Daten, bevor du DataFrames nutzt
  • Nutze apply() für Transformationen
  • Achte auf Indexbeschriftungen, um Daten korrekt zuzuordnen
  • Prüfe auf fehlende Werte und bereinige sie frühzeitig
  • Kombiniere Series für Berechnungen oder Filter

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert