In Data Science sind Dateien das Herzstück der Datenbeschaffung. Ob CSVs, Textdateien oder Excel-Tabellen – der Umgang mit Dateien ist essenziell, um Daten zu laden, zu analysieren und zu speichern. In diesem Teil lernst du, wie man in Python Text- und CSV-Dateien effizient bearbeitet.
1. Grundlegender Umgang mit Dateien
In Python gibt es die eingebaute Funktion open(), um Dateien zu öffnen:
# Datei öffnen
datei = open("beispiel.txt", "w") # 'w' = write (schreiben)
datei.write("Hallo Welt!\n")
datei.close()
'w'→ Datei zum Schreiben öffnen (vorhandener Inhalt wird überschrieben)'r'→ Datei zum Lesen öffnen'a'→ Datei anhängen'x'→ Datei nur erstellen, wenn sie nicht existiert
2. Lesen von Dateien
Zeilenweise einlesen
datei = open("beispiel.txt", "r")
inhalt = datei.readlines()
datei.close()
print(inhalt)
readlines()liefert Liste der Zeilen- Alternative:
read()liest den gesamten Inhalt als String
Mit with-Statement
with open("beispiel.txt", "r") as datei:
for zeile in datei:
print(zeile.strip())
- Vorteil: Datei wird automatisch geschlossen
strip()entfernt Zeilenumbrüche oder Leerzeichen
3. Schreiben in Dateien
with open("beispiel.txt", "w") as datei:
datei.write("Erste Zeile\n")
datei.write("Zweite Zeile\n")
'a'zum Anhängen verwenden, ohne Inhalt zu überschreiben:
with open("beispiel.txt", "a") as datei:
datei.write("Neue Zeile\n")
4. Arbeiten mit CSV-Dateien
CSV-Dateien (Comma Separated Values) sind das Standardformat in Data Science. Python bietet zwei Möglichkeiten:
- CSV-Modul
- Pandas
4.1 CSV mit dem csv-Modul
import csv
# Schreiben
with open("kunden.csv", "w", newline="") as csvfile:
writer = csv.writer(csvfile)
writer.writerow(["Name", "Alter", "Land"])
writer.writerow(["Anna", 28, "Deutschland"])
writer.writerow(["Ben", 35, "Österreich"])
# Lesen
with open("kunden.csv", "r") as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print(row)
writer.writerow()schreibt eine Zeilereaderiteriert über Zeilen der Datei
4.2 CSV mit Pandas
Pandas ist viel einfacher und leistungsfähiger:
import pandas as pd
# CSV-Datei einlesen
df = pd.read_csv("kunden.csv")
print(df.head())
df.head()zeigt die ersten 5 Zeilen- Pandas erkennt automatisch Spalten und Datentypen
4.3 CSV speichern
df["NeuesFeld"] = df["Alter"] + 5
df.to_csv("kunden_neu.csv", index=False)
index=Falseverhindert, dass der Index mitgespeichert wird
5. Praxisbeispiel: Kundendaten verarbeiten
import pandas as pd
# CSV laden
try:
df = pd.read_csv("kunden.csv")
except FileNotFoundError:
print("Datei nicht gefunden!")
else:
# Neue Spalte berechnen
df["Alter_in_5_Jahren"] = df["Alter"] + 5
# VIP-Kunden filtern
df_vip = df[df["Name"].isin(["Anna", "Ben"])]
# CSV speichern
df_vip.to_csv("vip_kunden.csv", index=False)
print("VIP-Datei gespeichert!")
- Kombiniert Datei laden, filtern, berechnen und speichern
- Ideal für Data-Science-Workflows
6. Lesen und Schreiben von Textdateien mit Pandas
Manchmal sind Textdateien nicht im CSV-Format, sondern mit Trennzeichen wie Tab oder Semikolon:
# TSV-Datei laden (Tab-Separated)
df = pd.read_csv("daten.tsv", sep="\t")
# Mit Semikolon
df = pd.read_csv("daten.csv", sep=";")
sepdefiniert das Trennzeichen
7. Tipps für Data Science
- Immer mit
witharbeiten – automatische Ressourcenfreigabe - CSV vs. TXT – für strukturierte Daten immer CSV oder Pandas DataFrame bevorzugen
- Fehler abfangen – mit
try/except - Index richtig setzen –
index_colbeim Einlesen von CSVs kann hilfreich sein - Dateiformate prüfen – fehlende Werte, falsches Trennzeichen
8. Mini-Praxisprojekt: CSV-Analyse
Aufgabe: Berechne den Durchschnittsalter aller Kunden und speichere VIP-Kunden in einer neuen Datei.
import pandas as pd
# CSV laden
df = pd.read_csv("kunden.csv")
# Durchschnittsalter
durchschnitt = df["Alter"].mean()
print(f"Durchschnittsalter: {durchschnitt:.2f} Jahre")
# VIP-Kunden speichern
vip_namen = ["Anna", "Clara"]
df_vip = df[df["Name"].isin(vip_namen)]
df_vip.to_csv("vip_kunden.csv", index=False)
print("VIP-Kunden gespeichert")
- Output:
Durchschnittsalter: 28.33 Jahre VIP-Kunden gespeichert - Ein kleiner Data-Science-Workflow: CSV laden → Daten bearbeiten → CSV speichern
Schreibe einen Kommentar