Teil 21: String-Operationen in Python & Pandas

In Data Science sind Textdaten allgegenwärtig: Kundenbewertungen, Namen, Adressen, Social-Media-Beiträge oder Produktbeschreibungen. Um solche Daten analysieren, bereinigen oder transformieren zu können, sind String-Operationen unerlässlich. In Python gibt es dafür umfangreiche Methoden, die sich in Pandas optimal auf Spalten von DataFrames anwenden lassen. In diesem Teil lernst du, wie man Strings effizient bearbeitet, filtert und für Analysen vorbereitet.


1. Grundlagen von Strings in Python

Strings in Python sind Textsequenzen. Du kannst sie wie folgt definieren:

name = "Anna"
text = 'Python ist großartig!'

Wichtige Methoden:

name.upper()   # 'ANNA' – alles in Großbuchstaben
name.lower()   # 'anna' – alles in Kleinbuchstaben
name.title()   # 'Anna' – jedes Wort groß
name.strip()   # entfernt Leerzeichen am Anfang und Ende
  • Strings sind immutable, d.h. Methoden erzeugen neue Strings
  • Praktisch für Bereinigung und Vereinheitlichung

2. String-Verkettung und Formatierung

vorname = "Anna"
nachname = "Müller"

# Verkettung
fullname = vorname + " " + nachname
print(fullname)

# Formatierung
age = 28
print(f"{fullname} ist {age} Jahre alt")
  • F-Strings (f"") sind effizient und lesbar
  • Wichtiger Bestandteil für Datenbeschriftungen und Reports

3. Suchen und Ersetzen in Strings

text = "Python ist super"
text.replace("super", "fantastisch")  # 'Python ist fantastisch'

text.find("Python")  # 0 → Position des Substrings
text.startswith("Py")  # True
text.endswith("!"),  # False
  • Methoden helfen beim Filtern, Säubern und Ersetzen von Textdaten

4. Arbeiten mit Strings in Pandas

In Pandas arbeiten wir oft mit DataFrame-Spalten, die Strings enthalten:

import pandas as pd

df = pd.DataFrame({
    "Name": ["Anna Müller", "ben Schmidt", "Clara Meier"],
    "Email": ["anna@example.com", "ben@web.de", "clara@example.com"]
})

Groß- und Kleinschreibung

df["Name_upper"] = df["Name"].str.upper()
df["Name_lower"] = df["Name"].str.lower()
  • .str → erlaubt String-Methoden auf ganze Spalten anzuwenden

Whitespace entfernen

df["Name"] = df["Name"].str.strip()
  • Entfernt unnötige Leerzeichen
  • Hilft, Fehler bei Vergleichen oder Filtern zu vermeiden

Filtern nach Text

# Namen, die 'Anna' enthalten
df[df["Name"].str.contains("Anna")]

# Emails, die auf '.com' enden
df[df["Email"].str.endswith(".com")]
  • String-Filter mit .contains(), .startswith(), .endswith()
  • Praktisch für Datenbereinigung oder Segmentierung

String aufteilen

# Vor- und Nachname trennen
df[["Vorname", "Nachname"]] = df["Name"].str.split(" ", expand=True)
  • .split() → trennt Strings an Leerzeichen, Kommas oder anderen Trennzeichen
  • expand=True → erstellt mehrere Spalten

Strings ersetzen

# Kleinbuchstaben in Email
df["Email"] = df["Email"].str.lower()

# Domains ändern
df["Email"] = df["Email"].str.replace("example.com", "firma.de")
  • .replace() auf Spalten anwenden → effizient für Massendaten

5. Regex (Reguläre Ausdrücke) in Pandas

Für komplexere Muster eignet sich Regex:

# Emails mit Regex filtern
df[df["Email"].str.contains(r"@example\.com$")]

# Zahlen aus Text extrahieren
df = pd.DataFrame({"Text": ["Alter: 28", "Alter: 35", "Alter: 22"]})
df["Alter"] = df["Text"].str.extract(r"(\d+)")
  • \d+ → Zahlen
  • Regex ermöglicht flexibles Filtern und Extrahieren

6. Praxisbeispiel: Kunden-Daten bereinigen

df = pd.DataFrame({
    "Name": [" Anna Müller ", "ben Schmidt", "CLARA MEIER"],
    "Email": ["Anna@EXAMPLE.com", "ben@web.de", "CLARA@EXAMPLE.COM"]
})

# Leerzeichen entfernen
df["Name"] = df["Name"].str.strip()

# Einheitliche Schreibweise
df["Name"] = df["Name"].str.title()
df["Email"] = df["Email"].str.lower()

# Vor- und Nachname trennen
df[["Vorname", "Nachname"]] = df["Name"].str.split(" ", expand=True)

print(df)

Ergebnis:

        Name              Email Vorname Nachname
0  Anna Müller     anna@example.com    Anna   Müller
1  Ben Schmidt        ben@web.de     Ben  Schmidt
2  Clara Meier  clara@example.com   Clara    Meier
  • Zeigt bereinigte, einheitliche Daten
  • Essentiell für Analyse, Reporting und Machine Learning

7. Tipps für Data Science

  1. String-Operationen früh anwenden – vereinfacht spätere Analysen
  2. .str-Methoden in Pandas nutzen – sehr effizient
  3. Regex nur bei komplexen Mustern – sonst normale Methoden verwenden
  4. Whitespace entfernen und Groß-/Kleinschreibung vereinheitlichen
  5. Vor- und Nachname, Domains, Codes sauber trennen

8. Fazit

String-Operationen sind in Data Science entscheidend für Textdaten. Python und Pandas bieten:

  • Grundlegende Methoden (upper, lower, strip)
  • Spaltenbasierte Operationen mit .str
  • Filter, Split, Replace, Regex

Wer diese Fähigkeiten beherrscht, kann Textdaten bereinigen, vereinheitlichen und analysieren, was die Grundlage für Reports, Datenvisualisierung und Machine Learning ist.


Kommentare

Schreibe einen Kommentar

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