Ein zentraler Schritt in jedem Data-Science-Projekt ist das Laden von Daten. Daten kommen aus verschiedenen Quellen wie CSV-Dateien, Excel-Tabellen oder SQL-Datenbanken. In diesem Teil lernst du, wie man verschiedene Datenquellen mit Python und Pandas einliest, überprüft und für Analysen vorbereitet.
1. CSV-Dateien laden
CSV (Comma Separated Values) ist eines der häufigsten Formate für tabellarische Daten. Pandas bietet eine einfache Schnittstelle dafür.
import pandas as pd
# CSV-Datei laden
df = pd.read_csv("kunden.csv")
print(df.head()) # Zeigt die ersten 5 Zeilen
read_csv()erkennt automatisch Spalten und Datentypen- Optional kann man weitere Parameter nutzen:
df = pd.read_csv("kunden.csv", sep=";", index_col=0, encoding="utf-8")
sep→ Trennzeichenindex_col→ Spalte als Index verwendenencoding→ Zeichensatz, z. B. für Umlaute
2. CSV-Dateien speichern
Nach der Analyse kann das DataFrame wieder als CSV gespeichert werden:
df.to_csv("kunden_neu.csv", index=False)
index=Falseverhindert, dass der DataFrame-Index in die Datei geschrieben wird
3. Excel-Dateien laden
Excel-Dateien (.xls, .xlsx) sind ebenfalls weit verbreitet. Mit Pandas lassen sie sich einfach einlesen:
# Excel-Datei laden
df = pd.read_excel("kunden.xlsx", sheet_name="Tabelle1")
print(df.head())
sheet_name→ Name des Arbeitsblatts- Optional: mehrere Blätter gleichzeitig laden
dfs = pd.read_excel("kunden.xlsx", sheet_name=None) # Dictionary aller Blätter
4. Excel-Dateien speichern
df.to_excel("kunden_neu.xlsx", index=False, sheet_name="Daten")
sheet_name→ Name des Arbeitsblatts- Praktisch für Berichte oder Austausch mit Excel-Nutzern
5. SQL-Datenbanken
Oft liegen Daten in SQL-Datenbanken wie MySQL, PostgreSQL oder SQLite. Pandas kann direkt auf Daten zugreifen.
SQLite Beispiel
import sqlite3
# Verbindung herstellen
conn = sqlite3.connect("kunden.db")
# SQL-Abfrage ausführen
df = pd.read_sql_query("SELECT * FROM kunden", conn)
print(df.head())
# Verbindung schließen
conn.close()
PostgreSQL oder MySQL
Benötigt sqlalchemy:
from sqlalchemy import create_engine
# Verbindung aufbauen
engine = create_engine("postgresql://user:pass@localhost:5432/meinedb")
# Daten laden
df = pd.read_sql("SELECT * FROM kunden", engine)
print(df.head())
- Vorteil: Direkter Zugriff auf große Datenbanken
- Praktisch für Datenpipelines und regelmäßige Analysen
6. Datenüberprüfung nach dem Laden
Nach dem Laden solltest du die Daten überprüfen und vorbereiten:
print(df.info()) # Datentypen und fehlende Werte
print(df.describe()) # Statistische Übersicht
print(df.head()) # Erste Zeilen
info()→ Datentypen, Anzahl nicht-NaN-Wertedescribe()→ Mittelwert, Minimum, Maximum
7. Fehlende Werte behandeln
# Fehlende Werte zählen
print(df.isnull().sum())
# Fehlende Werte auffüllen
df["Alter"].fillna(df["Alter"].mean(), inplace=True)
# Zeilen mit fehlenden Werten entfernen
df.dropna(inplace=True)
fillna()→ NaN-Werte ersetzendropna()→ Zeilen mit NaN löschen
8. Praxisbeispiel: Multi-Source-Datenanalyse
# CSV laden
df_csv = pd.read_csv("kunden.csv")
# Excel laden
df_excel = pd.read_excel("zusatzdaten.xlsx")
# Daten zusammenführen
df_merged = pd.merge(df_csv, df_excel, on="KundenID", how="inner")
# Durchschnittsalter berechnen
print(df_merged["Alter"].mean())
# VIP-Kunden exportieren
df_vip = df_merged[df_merged["VIP"] == True]
df_vip.to_csv("vip_kunden.csv", index=False)
- Demonstriert Laden aus mehreren Quellen, Zusammenführen und Exportieren
- Ein typischer Workflow in Data Science
9. Tipps für Data Science
- Dateiformat prüfen – CSV, Excel, SQL, JSON
- Encoding berücksichtigen – UTF-8 vs. ANSI
- Daten vor Analyse prüfen –
info(),head(),describe() - Fehlende Werte früh behandeln – entscheidend für ML-Modelle
- SQL direkt nutzen, um große Datenmengen effizient zu laden
10. Fazit
Das Laden von Daten aus verschiedenen Quellen ist der erste Schritt in jedem Data-Science-Projekt. Python und Pandas bieten:
- CSV-Import/-Export
- Excel-Import/-Export
- SQL-Anbindung
Wer diese Fähigkeiten beherrscht, kann beliebige Datenquellen in DataFrames integrieren, analysieren und für Machine Learning oder Reporting vorbereiten.
Schreibe einen Kommentar