O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Datenanalyse mit Python, 2nd Edition

Book Description

Sie wollen alles erfahren über das Manipulieren, Bereinigen, Verarbeiten und Aufbereiten von strukturierten Daten mit Python? Dieses konsequent praxisbezogene Buch zeigt Ihnen anhand konkreter Fallbeispiele, wie Sie mit Jupyter und den Python-Bibliotheken Pandas, NumPy und IPython eine Vielzahl von typischen Datenanalyse-Problemen lösen.Geschrieben von Wes McKinney, dem Hauptautor der Pandas-Bibliothek, bietet Datenanalyse mit Python zudem einen praktischen Einstieg in das Scientific Computing für datenintensive Anwendungen mit Python.Das Buch eignet sich sowohl für Datenanalysten, für die Python Neuland ist, als auch für Python-Programmierer, die sich in das Scientific Computing einarbeiten wollen.

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Inhalt
  5. Vorwort
  6. 1 Einleitung
    1. 1.1 Worum geht es in diesem Buch?
    2. Welche Arten von Daten?
    3. 1.2 Warum Python für die Datenanalyse?
    4. Python als Kleister
    5. Das »Zwei-Sprachen-Problem« lösen
    6. Warum nicht Python?
    7. 1.3 Grundlegende Python-Bibliotheken
    8. NumPy
    9. pandas
    10. matplotlib
    11. IPython und Jupyter
    12. SciPy
    13. scikit-learn
    14. statsmodels
    15. 1.4 Installation und Einrichtung
    16. Windows
    17. Apple (OS X, macOS)
    18. GNU/Linux
    19. Python-Pakete installieren oder aktualisieren
    20. Python 2 und Python 3
    21. Integrierte Entwicklungsumgebungen (Integrated Development Environments – IDEs) und Texteditoren
    22. 1.5 Community und Konferenzen
    23. 1.6 Navigation durch dieses Buch
    24. Codebeispiele
    25. Daten für die Beispiele
    26. Importkonventionen
    27. Jargon
  7. 2 Grundlagen von Python, IPython und Jupyter-Notebooks
    1. 2.1 Der Python-Interpreter
    2. 2.2 IPython-Grundlagen
    3. Die IPython-Shell ausführen
    4. Das Jupyter-Notebook ausführen
    5. Befehlsergänzung mit Tab
    6. Introspektion
    7. Der %run-Befehl
    8. Code aus der Zwischenablage ausführen
    9. Terminal-Tastenkürzel
    10. Über magische Befehle
    11. matplotlib-Integration
    12. 2.3 Grundlagen der Sprache Python
    13. Sprachsemantik
    14. Skalare Typen
    15. Kontrollfluss
  8. 3 In Python integrierte Datenstrukturen, Funktionen und Dateien
    1. 3.1 Datenstrukturen und Sequenzen
    2. Tupel
    3. Listen
    4. Eingebaute Funktionen von Sequenzen
    5. Dictionarys
    6. Set
    7. List, Set und Dict Comprehensions
    8. 3.2 Funktionen
    9. Namensraum, Gültigkeitsbereich und lokale Funktionen
    10. Mehrere Rückgabewerte
    11. Funktionen sind Objekte
    12. Anonyme oder Lambda-Funktionen
    13. Currying: teilweise Anwendung von Argumenten
    14. Generatoren
    15. Fehler und die Behandlung von Ausnahmen
    16. 3.3 Dateien und das Betriebssystem
    17. Bytes und Unicode mit Dateien
    18. 3.4 Schlussbemerkung
  9. 4 Grundlagen von NumPy: Arrays und vektorisierte Berechnung
    1. 4.1 Das ndarray von NumPy: ein mehrdimensionales Array-Objekt
    2. ndarrays erzeugen
    3. Datentypen für ndarrays
    4. Rechnen mit NumPy-Arrays
    5. Einfaches Indizieren und Slicing
    6. Boolesches Indizieren
    7. Fancy Indexing
    8. Arrays transponieren und Achsen tauschen
    9. 4.2 Universelle Funktionen: schnelle elementweise Array-Funktionen
    10. 4.3 Array-orientierte Programmierung mit Arrays
    11. Bedingte Logik als Array-Operationen ausdrücken
    12. Mathematische und statistische Methoden
    13. Methoden für boolesche Arrays
    14. Sortieren
    15. Unique und andere Mengenlogik
    16. 4.4 Dateiein- und -ausgabe bei Arrays
    17. 4.5 Lineare Algebra
    18. 4.6 Erzeugen von Pseudozufallszahlen
    19. 4.7 Beispiel: Random Walks
    20. Viele Random Walks auf einmal simulieren
    21. 4.8 Schlussbemerkung
  10. 5 Erste Schritte mit pandas
    1. 5.1 Einführung in die pandas-Datenstrukturen
    2. Series
    3. DataFrame
    4. Indexobjekte
    5. 5.2 Wesentliche Funktionalität
    6. Neuindizierung
    7. Einträge von einer Achse löschen
    8. Indizierung, Auswahl und Filterung
    9. Integer-Indizes
    10. Arithmetik und Datenausrichtung
    11. Funktionsanwendung und Mapping
    12. Sortieren und Rangbildung
    13. Achsenindizes mit duplizierten Labels
    14. 5.3 Zusammenfassen und Berechnen deskriptiver Statistiken
    15. Korrelation und Kovarianz
    16. Eindeutigkeit, Werteanzahl und Mitgliedschaft
    17. 5.4 Schlussbemerkung
  11. 6 Laden und Speichern von Daten sowie Dateiformate
    1. 6.1 Lesen und Schreiben von Daten im Textformat
    2. Stückweises Lesen von Textdateien
    3. Daten in Textformaten schreiben
    4. Arbeiten mit separierten Formaten
    5. JSON-Daten
    6. XML und HTML: Web-Scraping
    7. 6.2 Binäre Datenformate
    8. Benutzung von HDF5
    9. Lesen von Microsoft Excel-Dateien
    10. 6.3 Interaktion mit Web-APIs
    11. 6.4 Interaktion mit Datenbanken
    12. 6.5 Schlussbemerkung
  12. 7 Daten bereinigen und vorbereiten
    1. 7.1 Der Umgang mit fehlenden Daten
    2. Fehlende Daten herausfiltern
    3. Fehlende Daten einsetzen
    4. 7.2 Datentransformation
    5. Duplikate entfernen
    6. Daten mithilfe einer Funktion oder eines Mappings transformieren
    7. Werte ersetzen
    8. Achsenindizes umbenennen
    9. Diskretisierung und Klassifizierung
    10. Erkennen und Filtern von Ausreißern
    11. Permutation und zufällige Stichproben
    12. Berechnen von Indikator-/Platzhaltervariablen
    13. 7.3 Manipulation von Strings
    14. Methoden von String-Objekten
    15. Reguläre Ausdrücke
    16. Vektorisierte String-Funktionen in pandas
    17. 7.4 Schlussbemerkung
  13. 8 Datenaufbereitung: Verknüpfen, Kombinieren und Umformen
    1. 8.1 Hierarchische Indizierung
    2. Ebenen neu anordnen und sortieren
    3. Zusammenfassende Statistiken nach Ebene
    4. Indizierung mit den Spalten eines DataFrame
    5. 8.2 Kombinieren und Verknüpfen von Datensätzen
    6. Datenbankartige Verknüpfung von DataFrames
    7. Daten über einen Index verknüpfen
    8. Verketten entlang einer Achse
    9. Überlappende Daten zusammenführen
    10. 8.3 Umformen und Transponieren
    11. Umformen mit hierarchischer Indizierung
    12. Transponieren vom »langen« zum »breiten« Format
    13. Transponieren vom »breiten« zum »langen« Format
    14. 8.4 Schlussbemerkung
  14. 9 Plotten und Visualisieren
    1. 9.1 Kurze Einführung in die matplotlib-API
    2. Diagramme und Subplots
    3. Farben, Beschriftungen und Linienformen
    4. Skalenstriche, Beschriftungen und Legenden
    5. Annotationen und Zeichnungen in einem Subplot
    6. Diagramme in Dateien abspeichern
    7. Die Konfiguration von matplotlib
    8. 9.2 Plotten mit pandas und seaborn
    9. Liniendiagramme
    10. Balkendiagramme
    11. Histogramme und Dichteplots
    12. Streu- oder Punktdiagramme
    13. Facettenraster und kategorische Daten
    14. 9.3 Andere Visualisierungswerkzeuge in Python
    15. 9.4 Schlussbemerkung
  15. 10 Aggregation von Daten und Gruppenoperationen
    1. 10.1 GroupBy-Mechanismen
    2. Iteration über Gruppen
    3. Auswählen einer Spalte oder einer Teilmenge von Spalten
    4. Gruppieren mit Dictionarys und Series
    5. Gruppieren mit Funktionen
    6. Gruppieren nach Ebenen eines Index
    7. 10.2 Aggregation von Daten
    8. Spaltenweise und mehrfache Anwendung von Funktionen
    9. Aggregierte Daten ohne Zeilenindizes zurückgeben
    10. 10.3 Apply: Allgemeine Operationen vom Typ split-apply-combine
    11. Unterdrücken der Gruppenschlüssel
    12. Analyse von Quantilen und Größenklassen
    13. Beispiel: Fehlende Daten mit gruppenspezifischen Werten auffüllen
    14. Beispiel: Zufällige Stichproben und Permutation
    15. Beispiel: Gewichteter Mittelwert für Gruppen und Korrelation
    16. Beispiel: Gruppenweise lineare Regression
    17. 10.4 Pivot-Tabellen und Kreuztabellierung
    18. Kreuztabellen
    19. 10.5 Schlussbemerkung
  16. 11 Zeitreihen
    1. 11.1 Datentypen und Werkzeuge für Datum und Zeit
    2. Konvertieren zwischen String und datetime
    3. 11.2 Grundlagen von Zeitreihen
    4. Indizieren, auswählen und Untermengen bilden
    5. Zeitreihen mit doppelten Indizes
    6. 11.3 Datumsbereiche, Frequenzen und Verschiebungen
    7. Erzeugen von Datumsbereichen
    8. Frequenzen und Offsets von Kalenderdaten
    9. Verschieben von Datumsangaben (Vorlauf und Verzögerung)
    10. 11.4 Berücksichtigung von Zeitzonen
    11. Lokalisieren und Konvertieren von Zeitzonen
    12. Operationen mit Zeitstempeln bei zugeordneter Zeitzone
    13. Operationen zwischen unterschiedlichen Zeitzonen
    14. 11.5 Perioden und Arithmetik von Perioden
    15. Umwandlung der Frequenz von Perioden
    16. Quartalsweise Perioden
    17. Zeitstempel zu Perioden konvertieren (und zurück)
    18. Erstellen eines PeriodIndex aus Arrays
    19. 11.6 Resampling und Konvertieren von Frequenzen
    20. Downsampling
    21. Upsampling und Interpolation
    22. Resampling mit Perioden
    23. 11.7 Funktionen mit gleitenden Fenstern
    24. Exponentiell gewichtete Funktionen
    25. Binäre Funktionen mit gleitendem Fenster
    26. Benutzerdefinierte Funktionen mit gleitenden Fenstern
    27. 11.8 Schlussbemerkung
  17. 12 pandas für Fortgeschrittene
    1. 12.1 Kategorische Daten
    2. Hintergrund und Motivation
    3. Der Typ Categorical in pandas
    4. Berechnungen mit Categoricals
    5. Kategorische Methoden
    6. 12.2 Erweiterter Einsatz von GroupBy
    7. Gruppentransformationen und »ausgepackte« GroupBys
    8. Gruppiertes Zeit-Resampling
    9. 12.3 Techniken für die Verkettung von Methoden
    10. Die Methode pipe
    11. 12.4 Schlussbemerkung
  18. 13 Einführung in Modellierungsbibliotheken in Python
    1. 13.1 Die Kopplung zwischen pandas und dem Modellcode
    2. 13.2 Modellbeschreibungen mit Patsy herstellen
    3. Datentransformationen in Patsy-Formeln
    4. Kategorische Daten und Patsy
    5. 13.3 Einführung in statsmodels
    6. Lineare Modelle schätzen
    7. Zeitreihenprozesse schätzen
    8. 13.4 Einführung in scikit-learn
    9. 13.5 Ihre Ausbildung fortsetzen
  19. 14 Beispiele aus der Datenanalyse
    1. 14.1 1.USA.gov-Daten von Bitly
    2. Zählen von Zeitzonen in reinem Python
    3. Zeitzonen mit pandas zählen
    4. 14.2 MovieLens-1M-Datensatz
    5. Messen von Unterschieden in der Bewertung
    6. 14.3 US-Babynamen von 1880–2010
    7. Namenstrends analysieren
    8. 14.4 Die USDA-Nahrungsmitteldatenbank
    9. 14.5 Datenbank des US-Wahlausschusses von 2012
    10. Spendenstatistik nach Beruf und Arbeitgeber
    11. Spenden der Größe nach klassifizieren
    12. Spendenstatistik nach Bundesstaat
    13. 14.6 Schlussbemerkung
  20. A NumPy für Fortgeschrittene
    1. A.1 Interna des ndarray-Objekts
    2. Die dtype-Hierarchie in NumPy
    3. A.2 Fortgeschrittene Manipulation von Arrays
    4. Arrays umformen
    5. Anordnung von Arrays in C und Fortran
    6. Arrays verketten und aufspalten
    7. Wiederholen von Elementen: tile und repeat
    8. Alternativen zum Fancy Indexing: take und put
    9. A.3 Broadcasting
    10. Broadcasting über andere Achsen
    11. Werte von Arrays durch Broadcasting setzen
    12. A.4 Fortgeschrittene Nutzung von ufuncs
    13. Instanzmethoden von ufunc
    14. Neue ufuncs in Python schreiben
    15. A.5 Strukturierte und Record-Arrays
    16. Geschachtelte dtypes und mehrdimensionale Felder
    17. Warum sollte man strukturierte Arrays verwenden?
    18. A.6 Mehr zum Thema Sortieren
    19. Indirektes Sortieren: argsort und lexsort
    20. Alternative Sortieralgorithmen
    21. Arrays teilweise sortieren
    22. numpy.searchsorted: Elemente in einem sortierten Array finden
    23. A.7 Schnelle NumPy-Funktionen mit Numba schreiben
    24. Eigene numpy.ufunc-Objekte mit Numba herstellen
    25. A.8 Ein- und Ausgabe von Arrays für Fortgeschrittene
    26. Memory-mapped Dateien
    27. HDF5 und weitere Möglichkeiten zum Speichern von Arrays
    28. A.9 Tipps für eine höhere Leistung
    29. Die Bedeutung des zusammenhängenden Speichers
  21. B Mehr zum IPython-System
    1. B.1 Die Befehlshistorie benutzen
    2. Die Befehlshistorie durchsuchen und wiederverwenden
    3. Eingabe- und Ausgabevariablen
    4. B.2 Mit dem Betriebssystem interagieren
    5. Shell-Befehle und -Aliase
    6. Das Verzeichnis-Bookmark-System
    7. B.3 Werkzeuge zur Softwareentwicklung
    8. Interaktiver Debugger
    9. Zeitmessung bei Code: %time und %timeit
    10. Grundlegende Profilierung: %prun and %run -p
    11. Eine Funktion Zeile für Zeile profilieren
    12. B.4 Tipps für eine produktive Codeentwicklung mit IPython
    13. Modulabhängigkeiten neu laden
    14. Tipps für das Codedesign
    15. B.5 Fortgeschrittene IPython-Funktionen
    16. Ihre eigenen Klassen IPython-freundlich gestalten
    17. Profile und Konfiguration
    18. B.6 Schlussbemerkung
  22. Index
  23. Über den Autor
  24. Über die Übersetzer
  25. Kolophon
  26. Fußnoten