Teil 19: Daten laden: CSV, Excel, SQL

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 → Trennzeichen
  • index_col → Spalte als Index verwenden
  • encoding → 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=False verhindert, 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-Werte
  • describe() → 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 ersetzen
  • dropna() → 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

  1. Dateiformat prüfen – CSV, Excel, SQL, JSON
  2. Encoding berücksichtigen – UTF-8 vs. ANSI
  3. Daten vor Analyse prüfeninfo(), head(), describe()
  4. Fehlende Werte früh behandeln – entscheidend für ML-Modelle
  5. 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.


Kommentare

Schreibe einen Kommentar

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