Kapitel 1. Einführung in Data Wranglingund Datenqualität

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Heutzutage scheinen Daten die Antwort auf alles zu sein: Wir nutzen die Daten in Produkt- und Restaurantbewertungen, um zu entscheiden, was wir kaufen und wo wir essen gehen; Unternehmen nutzen die Daten über das, was wir lesen, anklicken und anschauen, um zu entscheiden, welche Inhalte sie produzieren und welche Werbung sie zeigen; Personalverantwortliche nutzen Daten, um zu entscheiden, welche Bewerber/innen Vorstellungsgespräche bekommen; die Regierung nutzt Daten, um über alles zu entscheiden, von der Vergabe von Autobahngeldern bis hin dazu, wo dein Kind zur Schule geht. Daten - egal ob es sich um eine einfache Zahlentabelle oder die Grundlage eines Systems der "künstlichen Intelligenz" handelt - durchdringen unser Leben. Der allgegenwärtige Einfluss, den Daten auf unsere täglichen Erfahrungen und Möglichkeiten haben, ist genau der Grund, warum der Umgang mit Daten für jeden, der die Funktionsweise datengesteuerter Systeme verstehen und beeinflussen will, eine wichtige Fähigkeit ist und auch in Zukunft sein wird. Ebenso ist die Fähigkeit, die Qualität von Daten zu beurteilen und sogar zu verbessern, für jeden unverzichtbar, der daran interessiert ist, dass diese manchmal (sehr) fehlerhaften Systeme besser funktionieren.

Da die Begriffe Data Wrangling und Datenqualität für jeden etwas anderes bedeuten, beginnen wir dieses Kapitel mit einem kurzen Überblick über die drei Hauptthemen, die in diesem Buch behandelt werden: Data Wrangling, Datenqualität und die Programmiersprache Python. Das Ziel dieses Überblicks ist es, dir einen Eindruck von meiner Herangehensweise an diese Themen zu vermitteln, damit du entscheiden kannst, ob dieses Buch das Richtige für dich ist. Danach werden wir uns mit der notwendigen Logistik beschäftigen, wie du auf die Software-Tools und andere Ressourcen zugreifen und sie konfigurieren kannst, um die Übungen in diesem Buch zu bearbeiten. Obwohl alle Ressourcen, auf die in diesem Buch Bezug genommen wird, kostenlos genutzt werden können, gehen viele Programmierbücher und -tutorials davon aus, dass die Leser/innen auf (oft recht teuren) Computern programmieren, die sie selbst besitzen. Da ich aber davon überzeugt bin, dass jeder, der es will, lernen kann, mit Python Daten zu verarbeiten, wollte ich sicherstellen, dass du das Material in diesem Buch auch dann nutzen kannst, wenn du keinen Zugang zu einem voll ausgestatteten Computer hast. Um dies zu gewährleisten, wurden alleLösungen, die du hier und in den folgenden Kapiteln findest, auf einem Chromebook geschrieben und getestet; sie können aber auch mit kostenlosen, reinen Online-Tools auf deinem eigenen Gerät oder einem gemeinsam genutzten Computer, zum Beispiel in der Schule oder einer öffentlichen Bibliothek, ausgeführt werden. Ich hoffe, dass ich dich mit meiner Darstellung, wie zugänglich nicht nur das Wissen, sondern auch die Werkzeuge der Datenverarbeitung sein können, dazu ermutigen kann, diese spannende und befähigende Praxis zu erkunden.

Was ist "Data Wrangling"?

Data Wrangling ist der Prozess, bei dem "rohe" oder "gefundene" Daten in etwas umgewandelt werden, das genutzt werden kann, um Erkenntnisse und Bedeutung zu gewinnen. Die Grundlage für jede sinnvolle Datenverarbeitung ist eine Frage: etwas über die Welt, das du untersuchen oder mehr darüber erfahren möchtest. Wenn du zu diesem Buch gekommen bist, weil du unbedingt programmieren lernen willst, dann ist die Datenverarbeitung ein guter Einstieg. Aber ich möchte dich dringend bitten, nicht gleich mit dem Programmieren zu beginnen, ohne dich mit den Datenqualitätsprozessen in den folgenden Kapiteln zu beschäftigen. Denn auch wenn du beim Data Wrangling von Programmierkenntnissen profitieren kannst, geht es um viel mehr als nur darum zu lernen, wie man auf Daten zugreift und sie manipuliert. Wie in diesem Buch gezeigt wird, sind die meisten leicht verfügbaren Daten nicht von besonders guter Qualität, sodass es keine Möglichkeit gibt, Daten zu verarbeiten, ohne Entscheidungen zu treffen, die den Inhalt der resultierenden Daten beeinflussen. Wenn du versuchst, Daten zu verarbeiten, ohne die Qualität der Daten zu berücksichtigen, ist das so, als würdest du versuchen, ein Auto ohne Lenkung zu fahren: Du kommst vielleicht irgendwo hin - und zwarschnell -, aber wahrscheinlich nirgendwo hin, wo du hinwillst. Wenn du schon Zeit mit der Datenverarbeitung und -analyse verbringst, solltest du sicherstellen, dass sich die Mühe auch lohnt.

Genauso wichtig ist aber auch, dass es keine bessere Möglichkeit gibt, eine neue Fähigkeit zu erlernen, als sie mit etwas zu verbinden, das du wirklich "richtig" machen willst, denn dieses persönliche Interesse wird dich durch die unvermeidlichen Frustrationsmomente tragen. Das bedeutet nicht, dass die Frage, die du dir aussuchst, etwas von globaler Bedeutung sein muss. Es kann eine Frage über deine Lieblingsvideospiele, -bands oder -teesorten sein. Es kann eine Frage über deine Schule, deine Nachbarschaft oder dein Leben in den sozialen Medien sein. Es kann eine Frage über Wirtschaft, Politik, Glauben oder Geld sein. Es muss nur etwas sein, das dir wirklich am Herzen liegt.

Sobald du deine Frage im Griff hast, kannst du mit der Datenauswertung beginnen. Auch wenn die einzelnen Schritte je nach Projekt angepasst (oder wiederholt) werden müssen, umfasst das Datenwrangling im Prinzip einige oder alle der folgenden Schritte:

  1. Daten lokalisieren oder sammeln

  2. Überprüfung der Daten

  3. "Bereinigung", Standardisierung, Umwandlung und/oder Ergänzung der Daten

  4. Analysieren der Daten

  5. Visualisierung der Daten

  6. Die Daten kommunizieren

Der Zeit- und Arbeitsaufwand für jeden dieser Schritte kann natürlich sehr unterschiedlich sein: Wenn du eine Aufgabe beschleunigen willst, die du bereits für deine Arbeit erledigst, hast du vielleicht schon einen Datensatz zur Hand und weißt im Grunde, was er enthält. Wenn du hingegen versuchst, eine Frage zu den Ausgaben der Stadt in deiner Gemeinde zu beantworten, ist das Sammeln der Daten vielleicht der schwierigste Teil deines Projekts.

Außerdem solltest du wissen, dass der Prozess der Datenverarbeitung trotz der nummerierten Liste eher ein Zyklus als eine lineare Abfolge von Schritten ist. Meistens musst du frühere Schritte wiederholen, wenn du mehr über die Bedeutung und den Kontext der Daten erfährst, mit denen du arbeitest. Wenn du zum Beispiel einen großen Datensatz analysierst, stößt du vielleicht auf überraschende Muster oder Werte, die dich dazu veranlassen, deine Annahmen, die du im Schritt "Überprüfung" gemacht hast, zu hinterfragen. Das bedeutet fast immer, dass du weitere Informationen einholen musst - entweder aus der ursprünglichen Datenquelle oder aus völlig neuen Quellen - um zu verstehen, was wirklich passiert, bevor du mit deiner Analyse oder Visualisierung fortfahren kannst. Auch wenn ich es nicht explizit in die Liste aufgenommen habe, wäre es etwas genauer, jeden der Schritte mit Recherchieren und zu beginnen. Während sich der "Wrangling"-Teil unserer Arbeit weitgehend auf den/die Datensatz/e konzentriert, die wir vor uns haben, geht es beim "Qualität"-Teil fast ausschließlich um Recherche und Kontext, und beides ist ein wesentlicher Bestandteil jeder Phase des Data Wrangling-Prozesses.

Wenn dir das alles im Moment ein bisschen zu viel ist - keine Sorge! Die Beispiele in diesem Buch basieren auf echten Datensätzen, und wenn du mit der Kodierung und der Qualitätsbewertung fortfährst, wird sich das alles viel organischer anfühlen. Und wenn du dich bei deinem eigenen Datenverarbeitungsprojekt ein wenig verloren fühlst, erinnere dich einfach an die Frage, die du beantworten willst. Das wird dich nicht nur daran erinnern, warum du dir die Mühe machst, dich mit all den Kleinigkeiten von Datenformaten und API-Schlüsseln zu beschäftigen,1 es wird dich auch fast immer intuitiv zum nächsten "Schritt" im Prozess der Datenverarbeitung führen - sei es, dass du deine Daten visualisierst oder noch ein bisschen mehr recherchierst, um den Kontext und die Qualität von zu verbessern.

Was ist "Datenqualität"?

Es gibt viele Daten auf der Welt und viele Möglichkeiten, auf sie zuzugreifen und sie zu sammeln. Aber nicht alle Daten sind gleich. Das Verständnis der Datenqualität ist ein wesentlicher Bestandteil der Datenverarbeitung, denn jede datengestützte Erkenntnis kann nur so gut sein wie die Daten, auf denen sie aufbaut.2 Wenn du also Daten nutzen willst, um etwas Sinnvolles über die Welt zu erfahren, musst du zuerst sicherstellen, dass die Daten, die du hast, diese Welt genau widerspiegeln. Wie wir in späteren Kapiteln (insbesondere in Kapitel 3 und 6) sehen werden, ist die Verbesserung der Datenqualität fast nie so eindeutig wie die oft ordentlich aussehenden, sauber beschrifteten Zeilen und Spalten der Daten, mit denen du arbeiten wirst.

Denn trotz der Verwendung von Begriffen wie maschinelles Lernen und künstliche Intelligenz ( ) ist das Einzige, was Computerprogramme tun können, den Anweisungen zu folgen, die ihnen anhand der bereitgestellten Daten gegeben werden. Und selbst die komplexesten, ausgefeiltesten und abstraktesten Daten sind in ihrer Substanz unwiderruflich menschlich, denn sie sind das Ergebnis menschlicher Entscheidungen darüber, was und wie sie gemessen werden. Darüber hinaus treffen selbst die modernsten Computertechnologien "Vorhersagen" und "Entscheidungen" auf der Grundlage eines groß angelegten Musterabgleichs - Muster, die in einer bestimmten Auswahl von Daten enthalten sind, die von Menschen "trainiert" wurden. Computer haben keine originellen Ideen oder machen kreative Sprünge; sie sind grundsätzlich schlecht in vielen Aufgaben (wie z. B. den "Kern" eines Arguments oder die Handlung einer Geschichte zu erklären), die Menschen intuitiv finden. Andererseits sind Computer hervorragend darin, sich wiederholende Berechnungen sehr schnell auszuführen, ohne sich zu langweilen, zu ermüden oder abgelenkt zu werden. Mit anderen Worten: Computer sind zwar eine fantastische Ergänzung zu menschlichem Urteilsvermögen und menschlicher Intelligenz, aber sie können diese nur verstärken, nicht ersetzen.

Das bedeutet, dass es an den Menschen liegt, die an der Datenerhebung, -beschaffung und -analyse beteiligt sind, die Qualität der Daten sicherzustellen, damit die Ergebnisse unserer Datenarbeit auch wirklich etwas bedeuten. In Kapitel 3 werden wir uns ausführlich mit der Datenqualität befassen. Ich möchte jedoch zwei verschiedene (wenn auch gleichermaßen wichtige) Aspekte zur Bewertung der Datenqualität vorstellen: (1) die Integrität der Daten selbst und (2) die "Passung" oder Angemessenheit der Daten in Bezug auf eine bestimmte Frage oder ein Problem.

Datenintegrität

Für unsere wird die Integrität eines Datensatzes anhand der Datenwerte und Deskriptoren bewertet, aus denen er sich zusammensetzt. Wenn unser Datensatz z. B. Messungen im Laufe der Zeit enthält, wurden diese in gleichmäßigen Abständen oder sporadisch aufgezeichnet? Stellen die Werte direkte Einzelmessungen dar oder sind nur Durchschnittswerte verfügbar? Gibt es ein Datenwörterbuch, das Auskunft darüber gibt, wie die Daten erhoben und aufgezeichnet wurden oder wie sie zu interpretieren sind, z. B. durch Angabe der relevanten Einheiten? Im Allgemeinen gelten Daten, die vollständig, atomar und gut kommentiertsind, als integerer, weil diese Merkmale eine breitere Palette von aussagekräftigen Analysen ermöglichen. In den meisten Fällen wirst du jedoch feststellen, dass ein bestimmter Datensatz in einer Reihe von Aspekten der Datenintegrität unzureichend ist. Das heißt, du musst versuchen, die Grenzen der Daten zu erkennen und sie zu verbessern, wo immer du kannst. Das bedeutet zwar oft, dass du einen bestimmten Datensatz durch andere ergänzen, kontextualisieren oder erweitern musst, aber fast immer bedeutet es auch, dass du über "Daten" jeglicher Art hinausgehen und dich an Experten wenden musst: an die Menschen, die die Daten entwickelt oder gesammelt haben, die schon früher damit gearbeitet haben oder die viel über den Themenbereich wissen, den deine Daten abdecken sollen.

Daten "Fit"

Selbst ein Datensatz, der eine ausgezeichnete Integrität aufweist, kann jedoch nur dann als hochwertig gelten, wenn er auch für deinen speziellen Zweck geeignet ist. Nehmen wir an, du möchtest wissen, an welcher Citi Bike-Station in einem bestimmten Zeitraum von 24 Stunden die meisten Fahrräder ausgeliehen und zurückgegeben wurden. Die Echtzeit-API von Citi Bike enthält zwar hochintegrierte Daten, ist aber kaum geeignet, um die Frage zu beantworten, welche Citi Bike-Station an einem bestimmten Tag den größten Umsatz verzeichnet hat. In diesem Fall wäre es viel besser, wenn du diese Frage mit den Citi Bike "Trip History"-Daten beantworten würdest.

Natürlich ist es selten, dass ein Datenanpassungsproblem so einfach gelöst werden kann; oft müssen wir einen erheblichen Teil der Integritätsarbeit leisten, bevor wir sicher sein können, dass unser Datensatz tatsächlich für die gewählte Frage oder das Projekt geeignet ist. Dieser Zeitaufwand lässt sich jedoch nicht umgehen: Abkürzungen bei der Datenintegrität oder Datenanpassung beeinträchtigen unweigerlich die Qualität und Relevanz deiner Datenverarbeitung insgesamt. Viele der Schäden, die durch die heutigen Computersysteme verursacht werden, hängen mit Problemen bei der Datenanpassung zusammen. Wenn du zum Beispiel Daten verwendest, die ein bestimmtes Phänomen beschreiben (z. B. das Einkommen), um Fragen zu einem möglicherweise verwandten, aber grundlegend anderen Phänomen zu beantworten (z. B. das Bildungsniveau), kann das zu verzerrten Schlussfolgerungen über das Geschehen in der Welt führen - mit manchmal verheerenden Folgen. In manchen Fällen ist es natürlich unvermeidlich, solche Ersatzwerte zu verwenden. Eine erste medizinische Diagnose, die auf den beobachtbaren Symptomen eines Patienten beruht, kann notwendig sein, um eine Notfallbehandlung zu gewährleisten, bis die Ergebnisse eines aussagekräftigeren Tests vorliegen. Während solche Ersatzmaßnahmen auf individueller Ebene manchmal akzeptabel sind, vervielfacht sich die Kluft zwischen jeder Ersatzmaßnahme und dem tatsächlichen Phänomen mit dem Umfang der Daten und dem System, für das sie verwendet werden. Wenn das passiert, erhalten wir ein stark verzerrtes Bild von der Realität, die wir mit unseren Daten und Analysen zu erhellen hofften. Zum Glück gibt es eine Reihe von Möglichkeiten, sich gegen diese Art von Fehlern zu schützen, wie wir in Kapitel 3 näher erläutern werden.

Warum Python?

Wenn du dieses Buch liest ( ), hast du wahrscheinlich schon von der Programmiersprache Python gehört und bist dir vielleicht sogar ziemlich sicher, dass sie das richtige Werkzeug ist, um deine Arbeit im Bereich Data Wrangling zu beginnen oder zu erweitern. Auch wenn das der Fall ist, lohnt es sich, kurz darauf einzugehen, warum sich Python besonders gut für die Art von Data Wrangling und Qualitätsarbeit eignet, die wir in diesem Buch durchführen werden. Wenn du noch nie etwas von Python gehört hast, ist dies natürlich eine Einführung in eine der beliebtesten und leistungsfähigsten Programmiersprachen, die heute verwendet werden.

Vielseitigkeit

Vielleicht eine der größten Stärken von Python als allgemeine Programmiersprache ist seine Vielseitigkeit: Es kann leicht verwendet werden, um auf APIs zuzugreifen, Daten aus dem Internet zu scrappen, statistische Analysen durchzuführen und aussagekräftige Visualisierungen zu erstellen. Viele andere Programmiersprachen können zwar einige dieser Dinge, aber nur wenige können sie alle so gut wie Python.

Zugänglichkeit

Eines der Ziele von Python-Schöpfer Guido van Rossum ( ) bei der Entwicklung der Sprache war es, "Code zu machen , der so verständlich ist wie einfaches Englisch". Python verwendet englische Schlüsselwörter, während viele andere Skriptsprachen (wie R und JavaScript) Interpunktion verwenden. Für englischsprachige Leser ist Python daher leichter und intuitiver zu erlernen als andere Skriptsprachen.

Lesbarkeit

Einer der Grundgedanken der Programmiersprache Python ist, dass "Lesbarkeit zählt". In den meisten Programmiersprachen ist das visuelle Layout des Codes für seine Funktionsweise irrelevant - solange die "Zeichensetzung" korrekt ist, versteht der Computer ihn. Python hingegen ist "weißraumabhängig": Ohne die richtigen Tabulator- und/oder Leerzeichen, die den Code einrücken, wird er nichts tun, außer einen Haufen Fehler zu produzieren. Daran muss man sich zwar erst einmal gewöhnen, aber es sorgt dafür, dass Python-Programme besser lesbar sind, was das Lesen von fremdem Code (oder, was wahrscheinlicher ist, das Lesen deines eigenen Codes, nachdem etwas Zeit vergangen ist) viel einfacher macht. Ein weiterer Aspekt der Lesbarkeit ist das Kommentieren und Dokumentieren deiner Arbeit, worauf ich in "Dokumentieren, Speichern und Versionieren deiner Arbeit" näher eingehen werde .

Gemeinschaft

Python hat eine sehr große und aktive Gemeinschaft von Nutzern, von denen viele dabei helfen, "Bibliotheken" von Code zu erstellen und zu pflegen, die die Möglichkeiten, die du mit deinem eigenen Python-Code schnell erreichen kannst, enorm erweitern. Python verfügt zum Beispiel über beliebte und gut entwickelte Codebibliotheken wie NumPy und Pandas, die dir beim Bereinigen und Analysieren von Daten helfen können, sowie über andere wie Matplotlib und Seaborn, um Visualisierungen zu erstellen. Es gibt sogar leistungsstarke Bibliotheken wie Scikit-Learn und NLTK, die die schwere Arbeit des maschinellen Lernens und der Verarbeitung natürlicher Sprache übernehmen können. Wenn du erst einmal die Grundlagen der Datenverarbeitung mit Python beherrschst, die wir in diesem Buch behandeln (in dem wir viele der eben erwähnten Bibliotheken verwenden werden), wirst du wahrscheinlich begierig darauf sein, zu erkunden, was mit vielen dieser Bibliotheken und nur wenigen Codezeilen möglich ist. Glücklicherweise schreiben dieselben Leute, die den Code für diese Bibliotheken schreiben, oft Blogbeiträge, machen Video-Tutorials und stellen Codebeispiele zur Verfügung, mit denen du deine Arbeit mit Python erweitern kannst.

Die Größe und der Enthusiasmus der Python-Gemeinschaft bedeuten auch, dass es einfach ist, Antworten auf häufige (und auch weniger häufige) Probleme und Fehler zu finden, auf die du stoßen könntest - detaillierte Lösungen werden oft online veröffentlicht. Daher kann die Fehlersuche in Python einfacher sein als bei spezialisierteren Sprachen mit einer kleineren Gemeinschaft von Benutzern.

Python-Alternativen

Obwohl Python sehr empfehlenswert ist, ziehst du vielleicht auch andere Tools für deine Datenverarbeitung in Betracht. Im Folgenden findest du einen kurzen Überblick über einige Tools, von denen du vielleicht schon gehört hast, und darüber, warum ich Python für diese Arbeit gewählt habe:

R

Die Programmiersprache R ( ) ist wahrscheinlich Pythons nächster Konkurrent bei der Datenarbeit, und viele Teams und Organisationen verlassen sich auf R, weil es eine Kombination aus Datenverarbeitung, fortschrittlicher statistischer Modellierung und Visualisierungsfunktionen bietet. Gleichzeitig ist R nicht ganz so leicht zugänglich und lesbar wie Python.

SQL

Simple Query Language (SQL) ist genau das: eine Sprache, mit der Datenbankdaten "geschnitten und gewürfelt" werden können. SQL kann zwar mächtig und nützlich sein, aber die Daten müssen in einem bestimmten Format vorliegen, um nützlich zu sein, und sind daher nur begrenzt geeignet, um Daten zu "zerkleinern".

Scala

Obwohl Scala gut für den Umgang mit großen Datenmengen geeignet ist, hat es eine viel steilere Lernkurve als Python und eine viel kleinere Nutzergemeinschaft. Das Gleiche gilt für Julia.

Java, C/C++

Diese haben zwar große Nutzergemeinschaften und sind sehr vielseitig, aber ihnen fehlt die natürliche Sprache und Lesbarkeit von Python und sie sind mehr auf die Erstellung von Software als auf die Datenverarbeitung und -analyse ausgerichtet.

JavaScript

In einer webbasierten Umgebung ist JavaScript von unschätzbarem Wert, und viele beliebte Visualisierungstools (z. B. D3) basieren auf JavaScript-Varianten. Gleichzeitig bietet JavaScript nicht dieselbe Bandbreite an Datenanalysefunktionen wie Python und ist im Allgemeinen langsamer.

Python schreiben und "ausführen"

Um den Übungen in diesem Buch folgen zu können, musst du dich mit den Werkzeugen vertraut machen, die dir beim Schreiben und Ausführen deines Python-Codes helfen; außerdem brauchst du ein System zum Sichern und Dokumentieren deines Codes, damit du keine wertvolle Arbeit durch einen falschen Tastendruck verlierst,5 und damit du dich leicht daran erinnern kannst, was dieser großartige Code alles kann, auch wenn du ihn eine Weile nicht angeschaut hast. Da es verschiedene Werkzeuge zur Lösung dieser Probleme gibt, empfehle ich dir, zunächst die folgenden Abschnitte durchzulesen und dann den Ansatz (oder die Kombination von Ansätzen) zu wählen, der für deine Vorlieben und Ressourcen am besten geeignet ist. Die wichtigsten Entscheidungen sind, ob du "nur" online arbeiten willst, d. h. mit Tools und Diensten, auf die du über das Internet zugreifst, oder ob du auch ohne Internetverbindung mit Python arbeiten kannst und willst, was die Installation dieser Tools auf einem Gerät erfordert, das dukontrollierst.

Wir alle schreiben je nach Kontext anders: Wahrscheinlich verwendest du einen anderen Stil und eine andere Struktur, wenn du eine E-Mail schreibst, als wenn du eine Textnachricht versendest; für ein Bewerbungsanschreiben verwendest du vielleicht einen ganz anderen Ton. Ich weiß, dass ich auch verschiedene Werkzeuge zum Schreiben verwende, je nachdem, was ich erreichen muss: Ich verwende Online-Dokumente, wenn ich gemeinsam mit Kollegen und Kolleginnen schreiben und bearbeiten muss, aber Bücher und Aufsätze schreibe ich lieber in einem supereinfachen Texteditor, der auf meinem Gerät ist. Speziellere Dokumentenformate wie PDFs werden in der Regel für Verträge und andere wichtige Dokumente verwendet, von denen wir nicht wollen, dass andere sie einfach ändern können.

Genau wie natürliche menschliche Sprachen kann Python in verschiedenen Dokumenttypen geschrieben werden, von denen jeder einen etwas anderen Stil beim Schreiben, Testen und Ausführen deines Codes unterstützt. Die wichtigsten Arten von Python-Dokumenten sind Notizbücher und eigenständige Dateien. Beide Dokumenttypen können für die Datenverarbeitung, -analyse und -visualisierung verwendet werden, haben aber leicht unterschiedliche Stärken und Anforderungen. Da die Konvertierung von einem Format in das andere einige Anpassungen erfordert, habe ich die Übungen in diesem Buch in beiden Formaten zur Verfügung gestellt. Ich habe das nicht nur getan, um dir die Flexibilität zu geben, den Dokumententyp zu wählen, den du am einfachsten oder nützlichsten findest, sondern auch, damit du sie vergleichen und selbst sehen kannst, wie der Übersetzungsprozess den Code beeinflusst. Hier ist ein kurzer Überblick über diese Dokumenttypen, damit du eine erste Auswahl treffen kannst:

Notizbücher

Ein Python-Notizbuch ist ein interaktives Dokument, in dem Teile des Codes in einem Webbrowserfenster ausgeführt werden. In diesem Buch werden wir ein Tool namens "Jupyter" verwenden, um unsere Python-Notizbücher zu erstellen, zu bearbeiten und auszuführen.6 Ein großer Vorteil von Notizbüchern für die Python-Programmierung ist, dass sie eine einfache Möglichkeit bieten, deinen Python-Code an einem Ort zu schreiben, auszuführen und zu dokumentieren. Vielleicht bevorzugst du Notebooks, wenn du lieber nach dem Prinzip "Zeigen und Klicken" programmieren möchtest oder wenn es für dich wichtig ist, komplett online zu arbeiten. Dieselben Python-Notizbücher können mit minimalen Änderungen sowohl auf deinem lokalen Gerät als auch in einer Online-Programmierumgebung verwendet werden. Das bedeutet, dass diese Option genau das Richtige für dich ist, wenn du (1) keinen Zugang zu einem Gerät hast, auf dem du Software installieren kannst, oder (2) wenn du Software installieren kannst, aber auch dann an deinem Code arbeiten möchtest, wenn du deinen Rechner nicht dabei hast.

Eigenständige Dateien

Eine eigenständige Python-Datei ist eigentlich jede einfache Textdatei, die Python-Code enthält. Du kannst solche eigenständigen Python-Dateien mit jedem einfachen Texteditor erstellen, obwohl ich dir dringend empfehle, einen Editor wie Atom zu verwenden, der speziell für die Arbeit mit Code entwickelt wurde (wie du ihn einrichtest, erfährst du in "Python, Jupyter Notebook und einen Code-Editor installieren"). Welche Software du für das Schreiben und Bearbeiten deines Codes auswählst, bleibt dir überlassen. Im Allgemeinen kannst du diese eigenständigen Python-Dateien nur auf einem physischen Gerät (z. B. einem Computer oder Telefon) ausführen, auf dem die Programmiersprache Python installiert ist. Du (und dein Computer) erkennst eigenständige Python-Dateien an ihrer Dateierweiterung .py. Auch wenn sie auf den ersten Blick restriktiver erscheinen, haben eigenständige Python-Dateien einige Vorteile. Du brauchst keine Internetverbindung, um Standalone-Dateien auszuführen, und du musst deine Daten nicht in die Cloud hochladen. Beides trifft zwar auch auf lokal ausgeführte Notebooks zu, aber bei eigenständigen Dateien musst du nicht darauf warten, dass eine Software gestartet wird. Sobald du Python installiert hast, kannst du eigenständige Python-Dateien sofort über die Kommandozeile ausführen (mehr dazu in Kürze) - das ist besonders nützlich, wenn du ein Python-Skript hast, das du regelmäßig ausführen musst. Die Fähigkeit von Notizbüchern, Teile des Codes unabhängig voneinander auszuführen, macht sie zwar etwas zugänglicher, aber die Tatsache, dass eigenständige Python-Dateien deinen Code immer "von Grund auf" ausführen, kann dir helfen, Fehler oder unvorhersehbare Ergebnisse zu vermeiden, die auftreten können, wenn du Teile des Notizbuch-Codes in falscher Reihenfolge ausführst.

Natürlich musst du dich nicht nur für das eine oder das andere entscheiden. Viele Menschen finden, dass Notebooks besonders nützlich sind, um Daten zu erforschen oder zu erklären (dank ihres interaktiven und lesefreundlichen Formats), während eigenständige Dateien besser für den Zugriff, die Umwandlung und die Bereinigung von Daten geeignet sind (da eigenständige Dateien zum Beispiel schneller und einfacher denselben Code auf verschiedene Datensätze anwenden können). Die größere Frage ist vielleicht, ob du online oder lokal arbeiten willst. Wenn du kein Gerät hast, auf dem du Python installieren kannst, musst du in Cloud-basierten Notizbüchern arbeiten; ansonsten kannst du entweder (oder beides!) Notizbücher oder eigenständige Dateien auf deinem Gerät verwenden. Wie bereits erwähnt, gibt es für alle Übungen in diesem Buch Notizbücher, die entweder online oder lokal verwendet werden können, sowie eigenständige Python-Dateien, um dir so viel Flexibilität wie möglich zu bieten und damit du vergleichen kannst, wie die gleichen Aufgaben auf erledigt werden.

Arbeiten mit Python auf deinem eigenen Gerät

Um Python-Code zu verstehen und auszuführen, musst du ihn auf deinem Gerät installieren. Je nach Gerät gibt es entweder eine herunterladbare Installationsdatei oder du musst eine textbasierte Schnittstelle verwenden (die du irgendwann benutzen musst, wenn du Python auf deinem Gerät verwendest), die Kommandozeile. Wie auch immer, das Ziel ist, dass du mindestens Python 3.9 zum Laufen bringst.7 Sobald du Python zum Laufen gebracht hast, kannst du das Jupyter-Notebook und/oder einen Code-Editor installieren (die Anleitung hier ist für Atom). Wenn du vorhast, nur in der Cloud zu arbeiten, kannst du direkt zu "Arbeiten mit Python Online" übergehen, um zu erfahren, wie du loslegen kannst.

Erste Schritte mit der Kommandozeile

Wenn du vorhast, Python lokal auf deinem Gerät zu verwenden, musst du lernen, die Kommandozeile (manchmal auch Terminal oder Eingabeaufforderung genannt) zu benutzen, mit der du deinem Computer textbasierte Anweisungen geben kannst. Im Prinzip kannst du in der Kommandozeile alles tun, was du auch mit der Maus tun kannst. Besonders effizient ist sie jedoch für die Installation von Code und Software (vor allem die Python-Bibliotheken, die wir im Laufe des Buches verwenden werden) sowie für das Sichern und Ausführen von Code. Auch wenn es etwas gewöhnungsbedürftig ist, ist die Kommandozeile für viele Programmieraufgaben schneller und unkomplizierter als die Maus. Trotzdem werde ich dir Anleitungen geben, wie du sowohl die Kommandozeile als auch die Maus verwenden kannst, wenn beides möglich ist, und du solltest dich entscheiden, was du für eine bestimmte Aufgabe bequemer findest.

Um loszulegen, öffnen wir eine Befehlszeilenschnittstelle (manchmal auch Terminal genannt) und erstellen damit einen Ordner für unsere Datenverarbeitung. Auf einem Chromebook, macOS oder Linux-Rechner suchst du nach "terminal" und wählst die Anwendung Terminal; auf einem Windows-PC suchst du nach "powershell" und wählst das Programm Windows PowerShell.

Tipp

Um Linux auf deinem Chromebook zu aktivieren, gehst du einfach zu deinen Chrome OS-Einstellungen (klicke auf das Zahnradsymbol im Startmenü oder suche nach "Einstellungen" im Launcher). Ganz unten im linken Menü findest du ein kleines Pinguin-Symbol mit der Aufschrift "Linux (Beta)". Klicke es an und folge den Anweisungen, um Linux auf deinem Rechner zu aktivieren. Möglicherweise musst du neu starten, bevor du fortfahren kannst.

Sobald du ein Terminal geöffnet hast, ist es an der Zeit, einen neuen Ordner zu erstellen! Um dir den Einstieg zu erleichtern, findest du hier ein kurzes Glossar mit nützlichen Begriffen aus der Kommandozeile:

ls

Der Befehl "list" zeigt Dateien und Ordner am aktuellen Ort an. Dies ist eine textbasierte Version dessen, was du in einem Finder-Fenster sehen würdest.

cd foldername

Der Befehl "change directory" verschiebt dich vom aktuellen Ort in foldername, sofern foldername angezeigt wird, wenn du den Befehl ls verwendest. Dies entspricht einem "Doppelklick" mit der Maus auf einen Ordner in einem Finderfenster.

cd ../

"Wechsle das Verzeichnis" noch einmal, aber die ../ verschiebt deine aktuelle Position in den enthaltenen Ordner oder Ort.

cd ~/

"Wechsle das Verzeichnis", aber die ~/ bringt dich zu deinem "Home"-Ordner zurück.

mkdir foldername

"Verzeichnis erstellen" mit Namen foldername. Das ist gleichbedeutend mit der Auswahl von Neu → Ordner im Kontextmenü mit der Maus und der Benennung des Ordners, sobald sein Symbol erscheint.

Tipp

Wenn du in der Kommandozeile verwendest, musst du eigentlich nie den vollständigen Namen einer Datei oder eines Ordners eingeben; betrachte es eher als eine Suche und beginne einfach mit der Eingabe der ersten Zeichen des (zugegebenermaßen zwischen Groß- und Kleinschreibung unterscheidenden) Namens. Sobald du das getan hast, drückst du die Tabulatortaste und der Name wird so weit wie möglich automatisch vervollständigt.

Wenn du zum Beispiel zwei Dateien in einem Ordner hast, eine mit dem Namen xls_parsing.py und eine mit dem Namen xlsx_parsing.py (was du tun wirst, wenn du mit Kapitel 4 fertig bist), und du die letztere ausführen möchtest, kannst du Folgendes eingeben python xl ein und drückst dann die Tabulatortaste, wodurch die Befehlszeile automatisch vervollständigt wird.python xlsDa die beiden möglichen Dateinamen nicht übereinstimmen, musst du an dieser Stelle entweder x oder _ eingeben. Wenn du dann noch einmal die Tabulatortaste drückst, wird der Rest des Dateinamens vervollständigt und du kannst loslegen!

Jedes Mal, wenn du ein neues Terminalfenster auf deinem Gerät öffnest, befindest du dich in deinem so genannten "Home"-Ordner. Auf macOS-, Windows- und Linux-Rechnern ist dies oft der "Benutzer"-Ordner, der nicht mit dem "Desktop"-Bereich identisch ist, den du siehst, wenn du dich zum ersten Mal anmeldest. Das kann anfangs etwas verwirrend sein, denn die Dateien und Ordner, die du siehst, wenn du ls zum ersten Mal in einem Terminal-Fenster aufrufst, sind dir wahrscheinlich nicht bekannt. Keine Sorge, zeige einfach mit deinem Terminal auf deinen normalen Desktop, indem du eintippst:

cd ~/Desktop

in das Terminal ein und drückst die Enter- oder Return-Taste (der Einfachheit halber bezeichne ich sie von nun an einfach als Enter-Taste).

Auf Chromebooks kann Python (und die anderen Programme, die wir brauchen) nur aus dem Linux-Dateiverzeichnis heraus gestartet werden, du kannst also nicht zum Desktop navigieren, sondern musst ein Terminalfenster öffnen.

Als Nächstes gibst du den folgenden Befehl in dein Terminalfenster ein und drückst die Eingabetaste:

mkdir data_wrangling

Hast du gesehen, dass der Ordner erscheint? Wenn ja, gratuliere ich dir, dass du deinen ersten Ordner in der Befehlszeile erstellt hast! Wenn nicht, überprüfe den Text links neben der Eingabeaufforderung ($ auf Chromebook, % auf macOS oder > auf Windows). Wenn du das Wort Desktop dort nicht siehst, führe cd ~/Desktop aus und versuche es dann noch einmal.

Nachdem du nun ein wenig Übung mit der Kommandozeile bekommen hast, wollen wir sehen, wie sie dir beim Installieren und Testen von Python auf helfen kann.

Installation von Python, Jupyter Notebook und einem Code-Editor

Um die Dinge einfach zu halten, werden wir einen Softwareverteilungsmanager namens Miniconda verwenden, der sowohl Python als auch Jupyter Notebook automatisch installiert. Auch wenn du nicht vorhast, die Notebooks für deine eigene Arbeit zu nutzen, sind sie doch so beliebt, dass die Möglichkeit, die Notebooks anderer Leute zu sehen und auszuführen, nützlich ist und nicht viel zusätzlichen Platz auf deinem Gerät benötigt. Mit der Installation von Miniconda werden nicht nur deine Python- und Jupyter-Notebook-Tools zum Laufen gebracht, sondern es wird auch eine neue Kommandozeilenfunktion namens conda erstellt, mit der du deine Python- und Jupyter-Notebook-Installationen schnell und einfach auf dem neuesten Stand halten kannst.8 Weitere Informationen darüber, wie du diese Updates durchführst, findest du in Anhang A.

Wenn du vorhast, den größten Teil deiner Python-Programmierung in einem Notebook zu erledigen, empfehle ich dir trotzdem, einen Code-Editor zu installieren. Auch wenn du damit nie eine einzige Python-Zeile schreibst, sind Code-Editoren unverzichtbar, um deine eigenen Datendateien zu betrachten, zu bearbeiten und sogar zu erstellen, und zwar effektiver und effizienter als die in den meisten Geräten integrierte Textbearbeitungssoftware. Am wichtigsten ist, dass Code-Editoren etwas können, das Syntax-Highlighting genannt wird, also eine integrierte Grammatikprüfung für Code und Daten. Das hört sich vielleicht nicht nach viel an, aber in Wirklichkeit macht es deine Programmier- und Debugging-Prozesse viel schneller und zuverlässiger, weil du (buchstäblich) weißt, wo du nachschauen musst, wenn es ein Problem gibt. Diese Kombination von Funktionen macht einen soliden Code-Editor zu einem der wichtigsten Werkzeuge sowohl für die Python-Programmierung als auch für den allgemeinen Umgang mit Daten.

In diesem Buch verwende ich den kostenlosen, plattformübergreifenden und quelloffenen Code-Editor Atom(https://atom.io) und beziehe mich dabei auf . Wenn du mit den Einstellungen herumspielst, findest du viele Möglichkeiten, deine Programmierumgebung an deine Bedürfnisse anzupassen. Wenn ich in diesem Buch auf die Farbe bestimmter Zeichen oder Codeteile hinweise, spiegeln sie das Standardthema "One Dark" in Atom wider.

Hinweis

Du brauchst eine starke, stabile Internetverbindung und etwa 30-60 Minuten Zeit, um die folgenden Einrichtungs- und Installationsprozesse durchzuführen. Ich empfehle außerdem, dass du dein Gerät an eine Stromquelle angeschlossen hast.

Chromebook

Um auf einem Chromebook zu installieren, musst du zunächst wissen, ob deine Version des Chrome OS-Betriebssystems 32-Bit oder 64-Bit ist.

Um diese Informationen zu finden, öffne deine Chrome-Einstellungen (klicke auf das Zahnradsymbol im Startmenü oder suche "Einstellungen" im Launcher) und klicke dann unten links auf "Über Chrome OS". Am oberen Rand des Fensters siehst du die Versionsnummer, gefolgt von (32-bit) oder (64-bit), wie in Abbildung 1-1 dargestellt.

Chrome OS version detail
Abbildung 1-1. Chrome OS Version Detail

Notiere dir diese Informationen, bevor du mit der Einrichtung von fortfährst.

Installation von Python und Jupyter Notebook

Um loszulegen, lade das Linux-Installationsprogramm herunter, das dem Bitformat deiner Chrome OS-Version entspricht. Öffne dann deinen Download-Ordner und ziehe die Installationsdatei (sie endet auf .sh) in deinen Linux-Ordner.

Als nächstes öffnest du ein Terminalfenster, führst den ls aus und vergewissere dich, dass dudie Miniconda .sh-Dateisiehst. Wenn das der Fall ist, führe den folgenden Befehl aus (erinnere dich daran, dass dueinfach den Anfang des Dateinamens eintippen und dann die Tabulatortaste drückenkannst, damit erautomatisch vervollständigt wird!):

bash _Miniconda_installation_filename_.sh

Befolge die Anweisungen, die in deinem Terminalfenster erscheinen (akzeptiere die Lizenz und die Eingabeaufforderung conda init ), schließe dann dein Terminalfenster und öffne es erneut. Als Nächstes musst du das Folgende ausführen:

conda init

Schließe dann dein Terminalfenster und öffne es erneut, damit du Jupyter Notebook mit dem folgenden Befehl installieren kannst:

conda install jupyter

Beantworte die folgenden Eingabeaufforderungen mit "Ja", schließe dein Terminal ein letztes Mal, und schon bist du fertig!

Installieren von Atom

Um Atom auf deinem Chromebook zu installieren, musst du das .deb-Paket von https://atom.io herunterladen und es in deinem Linux-Ordner speichern (oder dorthin verschieben).

Um die Software über das Terminal zu installieren, öffnest du ein Terminalfenster und gibst ein:

sudo dpkg -i atom-amd64.deb

Drücke Enter.9 Sobald der Text durchgelaufen ist und die Eingabeaufforderung (die mit einem $ endet) wieder erscheint, ist die Installation abgeschlossen.

Alternativ kannst du auch einen Kontextklick auf die .deb-Datei in deinem Linux-Ordner ausführen und die Option "Mit Linux installieren" oben im Kontextmenü auswählen. Du solltest einen Fortschrittsbalken unten rechts auf deinem Bildschirm sehen und eine Benachrichtigung erhalten, wenn die Installation abgeschlossen ist.

Unabhängig davon, welche Methode du verwendest, sollte nach Abschluss der Installation das grüne Atom-Symbol in deiner "Linux-Apps"-Blase im Launcher erscheinen.

macOS

Du hast zwei Möglichkeiten, Miniconda unter macOS zu installieren: Du kannst es über das Terminal mit einer .sh-Datei installieren oder du kannst es durch Herunterladen und Doppelklick auf das .pkg-Installationsprogramm installieren.

Installation von Python und Jupyter Notebook

Um loszulegen, besuche die Miniconda Installer Links Seite. Wenn du die Installation mit dem Terminal durchführen willst, lade die Python 3.9 "bash"-Datei herunter, die auf .sh endet; wenn du lieber die Maus benutzt, lade die .pkg-Datei herunter (möglicherweise erscheint während des Downloads eine Meldung des Betriebssystems mit der Warnung "Diese Art von Datei kann deinem Computer schaden"; wähle "Behalten").

Egal, welche Methode du wählst, öffne deinen Download-Ordner und ziehe die Datei auf deinen Desktop.

Wenn du Miniconda über das Terminal installieren möchtest, öffne zunächst ein Terminalfenster und verwende den Befehl cd, um es auf deinen Desktop zu richten:

cd ~/Desktop

Als nächstes führst du den ls aus und vergewissere dich, dass die Miniconda .sh-Datei in der Ergebnisliste angezeigt wird. Wenn das der Fall ist, führe den folgenden Befehl aus (erinnere dich daran, dass du einfach den Anfang des Dateinamens eintippen und dann die Tabulatortaste drücken kannst, damit er automatisch vervollständigt wird!):

bash _Miniconda_installation_filename_.sh

Folge den Anweisungen, die in deinem Terminalfenster erscheinen:

  • Verwende die Leertaste, um dich seitenweise durch die Lizenzvereinbarung zu bewegen, und wenn du (END) siehst, drücke den Zeilenschalter.

  • Gib yes gefolgt von Return ein, um die Lizenzvereinbarung zu akzeptieren.

  • Drücke den Zeilenschalter, um den Installationsort zu bestätigen, und gib yes gefolgt von Return ein, um die Eingabeaufforderung conda init zu akzeptieren.

Schließe schließlich dein Terminalfenster.

Wenn du die Installation lieber mit der Maus durchführen möchtest, doppelklicke einfach auf die .pkg-Datei und folge den Installationsanweisungen.

Nachdem du Miniconda installiert hast, musst du ein neues Terminalfenster öffnen und Folgendes eingeben

conda init

Drücke dann Return. Schließe dein Terminalfenster, öffne es erneut und benutze den folgenden Befehl (gefolgt von Return), um Jupyter Notebook zu installieren:

conda install jupyter

Beantworte die folgenden Eingabeaufforderungen mit Ja .

Installieren von Atom

Um Atom auf einem Mac zu installieren, besuche https://atom.io und klicke auf den großen gelben Download-Button, um das Installationsprogramm herunterzuladen.

Klicke auf die Datei atom-mac.zip in deinem Download-Ordner und ziehe dann die Atom-Anwendung (mit einem grünen Symbol daneben) in deinen Anwendungsordner (dies kann eine Eingabeaufforderung für dein Passwort sein).

Windows 10+

Um unter Windows 10+ zu installieren, musst du zunächst wissen, ob deine Version des Windows 10-Betriebssystems 32-Bit oder 64-Bit ist.

Um diese Informationen zu finden, öffne dein Startmenü und wähle dann das Zahnradsymbol, um zum Menü Einstellungen zu gelangen. Im daraufhin angezeigten Fenster wählst du im linken Menü System → Info. Im Abschnitt "Gerätespezifikationen" findest du den "Systemtyp", der angibt, ob du ein 32-Bit- oder 64-Bit-System hast. Die offizielle Anleitung findest du in der entsprechenden FAQ von Microsoft.

Notiere dir diese Informationen, bevor du mit deiner Einrichtung fortfährst.

Installation von Python und Jupyter Notebook

Um zu starten, gehe auf die Seite mit den Links zum Miniconda-Installer und lade den für dein System passenden Python 3.9-Installer herunter (entweder 32-Bit oder 64-Bit). Sobald die .exe-Datei heruntergeladen ist, klickst du dich durch die Menüs des Installers und lässt die vorgewählten Optionen stehen (du kannst die empfohlenen Tutorials und die "Anaconda Nucleus"-Anmeldung am Ende überspringen).

Sobald die Installation abgeschlossen ist, solltest du zwei neue Einträge in deinem Startmenü in der Liste "Kürzlich hinzugefügt" ganz oben sehen: "Anaconda Eingabeaufforderung (miniconda3)" und "Anaconda Powershell Eingabeaufforderung (miniconda3)", wie in Abbildung 1-2 gezeigt. Obwohl beide für unsere Zwecke geeignet sind, empfehle ich dir, die Powershell als "Terminal"-Oberfläche für dieses Buch zu verwenden.

Anaconda options in Start menu
Abbildung 1-2. Anaconda-Optionen im Startmenü

Nachdem du Miniconda installiert hast, öffnest du ein neues Terminalfenster (Powershell) und gibst ein:

conda init

Drücke dann Return. Schließe und öffne dein Terminal-Fenster wie angewiesen und benutze den folgenden Befehl (gefolgt von Return), um Jupyter Notebook zu installieren:

conda install jupyter

Antworte mit Ja (indem du y und dann die Eingabetaste drückst) auf die folgenden Eingabeaufforderungen.

Installieren von Atom

Um Atom auf einem Windows 10+ Rechner zu installieren, besuche https://atom.io und klicke auf den großen gelben "Download"-Button, um das Installationsprogramm herunterzuladen.

Klicke auf die Datei Atom-Setup-x64.exe,10 und warte, bis die Installation abgeschlossen ist; Atom sollte automatisch starten. Du kannst das blaue Pop-up-Fenster, in dem du gefragt wirst, ob du dich als Standard-Atom:// URI-Handler registrieren willst, mit Ja beantworten.

Testen deiner Einrichtung

Um sicherzustellen, dass sowohl Python als auch Jupyter Notebook wie erwartet funktionieren, öffne zunächst ein Terminal-Fenster und zeige auf den data_wrangling-Ordner, den du in "Erste Schritte mit der Kommandozeile" erstellt hast , und führe dann den folgenden Befehl aus:11

cd ~/Desktop/data_wrangling

Dann lauf:

python --version

Wenn du etwas siehst wie:

Python 3.9.4

bedeutet dies, dass Python erfolgreich installiert wurde.

Als nächstes testest du Jupyter Notebook, indem du es ausführst:

jupyter notebook

Wenn sich ein Browserfenster öffnet12 das ungefähr so aussieht wie das Bild in Abbildung 1-3, bist du bereit loszulegen!

Jupyter Notebook running in an empty folder
Abbildung 1-3. Jupyter Notebook läuft in einem leeren Ordner

Arbeiten mit Python Online

Wenn du dir die mühsame Installation von Python und einem Code-Editor ersparen möchtest (und du Python nur dann verwenden willst, wenn du eine stabile Internetverbindung hast), ist die Online-Arbeit mit Jupyter-Notizbüchern über Google Colab eine gute Option. Alles, was du für den Anfang brauchst, ist ein uneingeschränktes Google-Konto (du kannst auch ein neues erstellen, wenn du das möchtest - stell sicher, dass du dein Passwort kennst). Wenn du diese Voraussetzungen erfüllst, kannst du mit "Hello World!" loslegen !

Hallo Welt!

Nachdem du nun die Werkzeuge für die Datenverarbeitung hast, kannst du mit dem Schreiben und Ausführen deines ersten Python-Programms beginnen. Dazu werden wir uns der Programmiertradition beugen und ein einfaches "Hello World"-Programm erstellen, das lediglich die Worte "Hello World!" ausgeben soll. Um loszulegen, brauchst du eine neue Datei, in die du deinen Code schreiben und speichern kannst.

Mit Atom eine eigenständige Python-Datei erstellen

Atom funktioniert wie jedes andere Textverarbeitungsprogramm; du kannst es mit der Maus oder sogar mit deinem Terminal starten.

Um es zu starten, suche mit deiner Maus das Programmsymbol auf deinem Gerät:

Chromebook

Innerhalb der "Linux-Apps"-Anwendungsblase.

Mac

In Anwendungen oder im Launchpad auf dem Mac.

Windows

Im Startmenü oder über die Suche unter Windows. Wenn Atom nach der Erstinstallation unter Windows 10 nicht im Startmenü oder in der Suche erscheint, findest du Videos zur Fehlerbehebung auf YouTube.

Alternativ kannst du Atom auch über das Terminal öffnen, indem du einfach

atom

Wenn du Atom zum ersten Mal auf einem Chromebook öffnest, siehst du die Eingabeaufforderung "Passwort für neuen Schlüsselbund wählen". Da wir Atom nur zum Bearbeiten von Code und Daten verwenden, kannst du auf Abbrechen klicken, um diese Eingabeaufforderung zu schließen. Unter macOS wird eine Warnung angezeigt, dass Atom aus dem Internet heruntergeladen wurde - du kannst diese Eingabeaufforderung auch übergehen.

Du solltest jetzt einen Bildschirm sehen, der dem in Abbildung 1-4 gezeigten ähnelt.

Standardmäßig zeigt Atom beim Start eine oder mehrere "Willkommen"-Registerkarten an. Du kannst diese einfach schließen, indem du auf die Schaltfläche x klickst, die rechts neben dem Text erscheint, wenn du mit der Maus darüber fährst. Dadurch wird die unbenannte Datei in die Mitte deines Bildschirms verschoben (wenn du möchtest, kannst du auch das Projektfenster auf der linken Seite einklappen, indem du mit dem Mauszeiger über seine rechte Kante fährst, bis < erscheint, und dann darauf klickst).

Atom welcome screen
Abbildung 1-4. Atom Willkommensbildschirm

Bevor wir mit dem Schreiben des Codes beginnen, sollten wir unsere Datei dort speichern, wo wir sie wiederfinden - in unserem Ordner data_wrangling! Wähle im Menü "Datei" die Option "Speichern unter..." und speichere die Datei in deinem Ordner " data_wrangling" mit unter dem Namen HelloWorld.py.

Tipp

Wenn du eigenständige Python-Dateien speicherst, musst du unbedingt darauf achten, dass du die Erweiterung .py hinzufügst. Dein Python-Code funktioniert zwar auch ohne diese Endung, aber mit der richtigen Endung kann Atom die sehr nützliche Syntaxhervorhebung durchführen, die ich in "Python, Jupyter Notebook und einen Code-Editor installieren" erwähnt habe . Diese Funktion macht es viel einfacher, deinen Code beim ersten Mal richtig zu schreiben!

Jupyter verwenden, um ein neues Python-Notizbuch zu erstellen

Unter hast du vielleicht schon bemerkt, dass die Oberfläche, die du beim Testen von Jupyter Notebook verwendest, eigentlich nur ein normales Browserfenster ist. Ob du es glaubst oder nicht, wenn du den Befehl jupyter notebook ausführst, erstellt dein normaler Computer einen kleinen Webserver auf deinem Gerät!13 Sobald das Jupyter-Hauptfenster eingerichtet ist, kannst du mit der Maus neue Python-Dateien erstellen und andere Befehle direkt in deinem Webbrowser ausführen!

Um loszulegen, öffne ein Terminalfenster und benutze den Befehl:

cd ~/Desktop/data_wrangling/

in den Ordner data_wrangling auf deinem Desktop zu verschieben. Als nächstes führst du aus:

jupyter notebook

Du wirst sehen, wie eine Menge Code im Terminalfenster vorbeiläuft, und dein Computer sollte automatisch ein Browserfenster öffnen, das dir ein leeres Verzeichnis zeigt. Wähle unter Neu in der oberen rechten Ecke "Python 3", um ein neues Notizbuch zu öffnen. Doppelklicke auf das Wort "Untitled" in der oberen linken Ecke neben dem Jupyter-Logo, um deine Datei HelloWorld zu nennen.

Warnung

Da Jupyter Notebook einen Webserver (ja, den gleichen, der auch normale Websites betreibt) auf deinem lokalen Computer ausführt, ist es wichtig, dass du das Terminalfenster geöffnet lässt, solange du mit deinen Notebooks arbeitest. Wenn du dieses Terminalfenster schließt, stürzen deine Notebooks ab.

Glücklicherweise werden Jupyter-Notizbücher alle zwei Minuten automatisch gespeichert, so dass selbst bei einem Absturz wahrscheinlich nicht viel Arbeit verloren geht. Trotzdem solltest du das Terminalfenster, das du zum Starten von Jupyter verwendest, minimieren, damit du es nicht versehentlich schließt, während du arbeitest.

Google Colab zum Erstellen eines neuen Python-Notizbuchs verwenden

Melde dich zunächst unter bei dem Google-Konto an, das du für deine Arbeit mit den Daten verwenden möchtest, und besuche dann die Colab-Website. Dort siehst du etwas, das dem in Abbildung 1-5 gezeigten Overlay ähnelt.

Google Colab landing page (signed in)
Abbildung 1-5. Google Colab Landing Page (angemeldet)

Wähle in der rechten unteren Ecke Neues Notizbuch und doppelklicke dann oben links, um Untitled0.ipynb durch HelloWorld.ipynb zu ersetzen.14

Hinzufügen des Codes

Unter schreiben wir nun unseren ersten Code, der die Worte "Hello World" ausgeben soll. Unabhängig davon, welche Art von Python-Datei du verwendest, ist der Code in Beispiel 1-1 derselbe.

Beispiel 1-1. hello_world.py
# the code below should print "Hello World!"
print("Hello World!")

In einer eigenständigen Datei

Alles, was du tun musst, ist, den Code aus Beispiel 1-1 in deine Datei zu kopieren (oder einzutippen) und sie zu speichern!

In einem Notizbuch

Wenn du eine neue Datei erstellst, befindet sich darin standardmäßig eine leere "Codezelle" (in Jupyter Notebook siehst du links davon In [ ]; in Google Colab gibt es einen kleinen "Play"-Button). Kopiere (oder tippe) den Code in Beispiel 1-1 in diese Zelle.

Den Code ausführen

Nachdem wir unseren Python-Code in unsere Datei eingefügt und gespeichert haben, müssen wir ihn nun ausführen.

In einer eigenständigen Datei

Öffne ein Terminal-Fenster und verschiebe es mit in deinen data_wrangling-Ordner:

cd ~/Desktop/data_wrangling

Führe den ls aus und vergewissere dich, dass deine HelloWorld.py-Datei in der Antwort aufgelistet ist. Zum Schluss führst du aus:

python HelloWorld.py

Du solltest sehen, dass die Worte Hello World! in einer eigenen Zeile ausgedruckt werden, bevor die Eingabeaufforderung zurückkehrt (was signalisiert, dass das Programm beendet ist).

In einem Notizbuch

Klicke auf auf die Schaltfläche "Play" links neben der Zelle. Du solltest die Worte Hello World! darunter ausgedruckt sehen.

Wenn alles wie erwartet funktioniert hat - herzlichen Glückwunsch! Du hast jetzt dein erstes Stück Python-Code geschrieben!

Dokumentieren, Speichern und Versionieren deiner Arbeit

Bevor wir in Kapitel 2 wirklich in Python eintauchen, gibt es noch ein paar Vorbereitungen zu treffen. Ich weiß, das mag mühsam erscheinen, aber wenn du die Grundlagen für die richtige Dokumentation deiner Arbeit schaffst, ersparst du dir Dutzende von Stunden Arbeit und Frustration. Außerdem ist das sorgfältige Auskommentieren, Speichern und Versionieren deines Codes ein entscheidender Teil der "kugelsicheren" Arbeit an deinen Daten. Auch wenn es im Moment noch nicht sehr verlockend ist, werden all diese Schritte schon bald zur zweiten Natur werden (das verspreche ich dir!) und du wirst sehen, wie viel schneller und effizienter du damit arbeiten kannst.

Dokumentieren

Du hast vielleicht bemerkt, dass die erste Zeile, die du in "Hello World!" in deine Code-Zelle oder Python-Datei geschrieben hast , nicht in der Ausgabe auftaucht; das Einzige, was gedruckt wurde, war Hello World!. Diese erste Zeile in unserer Datei war ein Kommentar, der in einfacher Sprache beschreibt, was der Code in der/den folgenden Zeile(n) tun wird. Fast alle Programmiersprachen (und einige Datentypen!) bieten die Möglichkeit, Kommentare einzufügen, weil sie eine hervorragende Möglichkeit sind, jedem, der deinen Code liest15 den Kontext und die Erklärungen zu geben, die notwendig sind, um zu verstehen, was das Programm oder der Codeabschnitt macht.

Obwohl viele Programmierer dazu neigen, den Prozess des Kommentierens zu übersehen (sprich: zu überspringen), ist es wahrscheinlich die wertvollste Programmiergewohnheit, die du entwickeln kannst. Es erspart dir - und allen, mit denen du zusammenarbeitest - nicht nur enorm viel Zeit und Mühe, wenn du ein Python-Programm durchgehst, sondern das Kommentieren ist auch die beste Möglichkeit, das, was du über das Programmieren im Allgemeinen lernst, wirklich zu verinnerlichen. Auch wenn die Codebeispiele in diesem Buch bereits kommentiert sind, empfehle ich dir dringend, sie mit deinen eigenen Worten umzuschreiben. So stellst du sicher, dass du in Zukunft bei der Rückkehr zu diesen Dateien genau weißt, wie du die jeweilige Programmieraufgabe beim ersten Mal verstanden hast.

Ein weiterer wichtiger Dokumentationsprozess für die Datenverarbeitung ist das Führen eines sogenannten "Datentagebuchs". Wie ein persönliches Tagebuch kannst du dein Datentagebuch schreiben und organisieren, wie du willst; das Wichtigste ist, dass du festhältst , was du tust, während du es tust. Egal, ob du dich im Internet auf die Suche nach Daten machst, E-Mails an Experten schickst oder ein Programm entwirfst, du brauchst einen Ort, an dem du alles festhalten kannst, denn du wirst es vergessen.

Der erste Eintrag in deinem "Tagebuch" für ein Datenverarbeitungsprojekt sollte die Frage sein , die du beantworten willst. Auch wenn es eine Herausforderung ist, solltest du versuchen, deine Frage in einem einzigen Satz zu formulieren und ihn an den Anfang deines Tagebuchs zu stellen. Warum ist es wichtig, dass deine Frage ein einziger Satz ist? Weil der Prozess der Datenverarbeitung dich unweigerlich in eine Vielzahl von "Kaninchenlöchern" führt - zum Beispiel, um eine Frage über die Herkunft deiner Daten zu beantworten oder um ein Programmierproblem zu lösen -, so dass du leicht den Überblick darüber verlierst, was du eigentlich erreichen wolltest (und warum). Wenn du die Frage aber einmal ganz oben in deinem Datentagebuch stehen hast, kannst du immer wieder zu ihr zurückkehren, um dich daran zu erinnern.

Die Frage in deinem Datentagebuch ist auch von unschätzbarem Wert, wenn es darum geht, Entscheidungen darüber zu treffen, wie du deine Zeit bei der Datenverarbeitung verbringen willst. Dein Datensatz kann zum Beispiel Begriffe enthalten, die dir nicht geläufig sind - solltest du versuchen, die Bedeutung jedes einzelnen Begriffs herauszufinden? Ja, wenn dies zur Beantwortung deiner Frage beiträgt. Wenn nicht, ist es vielleicht an der Zeit, sich einer anderen Aufgabe zuzuwenden.

Wenn du es geschafft hast, deine Frage zu beantworten (und das wirst du, zumindest teilweise), wirst du mit Sicherheit feststellen, dass du noch mehr Fragen hast, die du beantworten möchtest, oder dass du dieselbe Frage eine Woche, einen Monat oder ein Jahr später noch einmal beantworten möchtest. Wenn du dein Datentagebuch als Leitfaden zur Hand hast, kannst du es beim nächsten Mal viel schneller und einfacher erledigen. Das heißt nicht, dass es keine Mühe macht: Meiner Erfahrung nach dauert ein Projekt durch das Führen eines gründlichen Datentagebuchs beim ersten Mal etwa 40 % länger, aber beim zweiten Mal (z. B. mit einer neuen Version des Datensatzes) geht es mindestens doppelt so schnell. Ein Datentagebuch ist auch ein wertvoller Arbeitsnachweis: Wenn du jemals nach dem Prozess suchst, mit dem du deine Ergebnisse bei der Datenverarbeitung erzielt hast, findest du in deinem Datentagebuch alle Informationen, die du (oder andere) brauchen könnten.

Wie du dein Datentagebuch führst, ist jedoch ganz dir überlassen. Manche Leute mögen eine Menge ausgefallener Formatierungen, andere verwenden einfach eine einfache Textdatei. Vielleicht möchtest du sogar ein richtiges Notizbuch aus Papier verwenden! Was auch immer für dich funktioniert, ist in Ordnung. Dein Datentagebuch wird ein unschätzbares Nachschlagewerk sein, wenn es darum geht, mit anderen über deine Daten (und den Prozess der Datenverarbeitung) zu kommunizieren, aber du solltest es so organisieren, wie es dir am besten passt.

Sparen

du deine Arbeit sorgfältig mit Kommentaren und Datentagebüchern dokumentierst, solltest du auch sicherstellen, dass du sie regelmäßig speicherst. Glücklicherweise ist das "Speichern" in unseren Arbeitsablauf integriert: Notizbücher speichern regelmäßig automatisch, und um den Code in unserer eigenständigen Datei auszuführen, müssen wir unsere Änderungen zuerst speichern. Egal, ob du dich auf Tastenkombinationen verlässt (für mich ist das Drücken von Strg+S eine nervöse Angewohnheit) odermausgesteuerte Menüs verwendest, du wirst deine Arbeit wahrscheinlich mindestens alle 10 Minuten speichern wollen.

Tipp

Wenn du eigenständige Dateien verwendest, solltest du dich damit vertraut machen, wie dein Code-Editor anzeigt, dass eine Datei ungespeicherte Änderungen enthält. In Atom zum Beispiel erscheint ein kleiner farbiger Punkt auf der Registerkarte "Dokument" rechts neben dem Dateinamen, wenn es ungespeicherte Änderungen in der Datei gibt. Wenn sich der Code nicht so verhält, wie du es erwartest, überprüfe zuerst, ob du ihn gespeichert hast und versuche es dann noch einmal.

Versionierung

Programmieren ist - wie das meiste Schreiben - ein iterativer Prozess. Mein bevorzugter Ansatz war schon immer, ein bisschen Code zu schreiben, ihn zu testen und wenn er funktioniert, noch ein bisschen mehr zu schreiben und wieder zu testen. Ein Ziel dieses Ansatzes ist es, die Rückverfolgung zu erleichtern, falls ich etwas hinzufüge, das den Code versehentlich "kaputt" macht.16

Gleichzeitig ist es nicht immer möglich, zu garantieren, dass dein Code "funktioniert", wenn du dich von ihm trennen musst - sei es, weil die Kinder gerade nach Hause gekommen sind, die Lernpause vorbei ist oder es Zeit fürs Bett ist. Du willst immer eine "sichere" Kopie deines Codes haben, zu der du zurückkehren kannst. Hier kommt die Versionskontrolle ins Spiel.

Erste Schritte mit GitHub

Versionskontrolle ist im Grunde nichts anderes als ein System zum Sichern deines Codes, sowohl auf deinem Computer als auch in der Cloud. In diesem Buch werden wir GitHub für die Versionskontrolle verwenden, eine sehr beliebte Website, auf der du deinen Code kostenlos sichern kannst. Obwohl es viele verschiedene Möglichkeiten gibt, mit GitHub zu interagieren, werden wir die Kommandozeile verwenden, weil es nur ein paar schnelle Befehle braucht, um deinen Code sicher zu verwahren, bis du wieder daran arbeiten willst. Um loszulegen, musst du ein Konto auf GitHub erstellen, Git auf deinem Computer installieren und dann die Konten miteinander verbinden:

  1. Besuche die GitHub-Website unter https://github.com und klicke auf "Sign Up". Gib deinen bevorzugten Benutzernamen (du musst vielleicht ein paar ausprobieren, um einen verfügbaren zu finden), deine E-Mail-Adresse und dein gewähltes Passwort ein (schreibe es auf oder speichere es in deinem Passwortmanager - du wirst es bald brauchen!)

  2. Sobald du dich eingeloggt hast, klickst du auf die Schaltfläche Neu auf der linken Seite. Daraufhin öffnet sich die Seite "Neues Repository erstellen", die in Abbildung 1-6 dargestellt ist.

  3. Gib deinem Repository einen Namen. Du kannst ihn beliebig wählen, aber ich schlage vor, dass du ihn beschreibend nennst, z.B. data_wrangling_exercises.

  4. Wähle das Optionsfeld "Privat" und aktiviere das Kontrollkästchen neben der Option "Eine README-Datei hinzufügen".

  5. Klicke auf die Schaltfläche "Repository erstellen".

Creating a new repository (or 'repo') on GitHub.com
Abbildung 1-6. Erstellen eines neuen Repositorys (oder "Repo") auf GitHub.com

Du siehst nun eine Seite, auf der data_wrangling_exercises in großer Schrift angezeigt wird, mit einem kleinen Bleistiftsymbol rechts darüber. Wenn du auf den Bleistift klickst, erscheint eine Bearbeitungsoberfläche, in der du Text hinzufügen kannst. Dies ist deine README-Datei, in der du dein Repository beschreiben kannst. Da wir dieses Repository (oder kurz "Repo") verwenden werden, um die Übungen aus diesem Buch zu speichern, kannst du einfach einen entsprechenden Satz hinzufügen, wie in Abbildung 1-7 gezeigt.

Wenn du zum Ende der Seite scrollst, siehst du dein Profilsymbol mit einem bearbeitbaren Bereich rechts, auf dem "Änderungen übertragen" steht, und darunter einen Standardtext mit der Aufschrift "README.md aktualisieren". Ersetze diesen Standardtext durch eine kurze Beschreibung dessen, was du getan hast; das ist deine "Commit-Nachricht". Ich habe zum Beispiel geschrieben: "Beschreibung der Repo-Inhalte hinzugefügt", wie in Abbildung 1-8 gezeigt. Klicke dann auf die Schaltfläche "Änderungen festschreiben".

Updating the README file on GitHub.com
Abbildung 1-7. Aktualisieren der README-Datei auf GitHub
Adding a commit message to the README file changes
Abbildung 1-8. Hinzufügen einer Commit-Meldung zu den Änderungen in der README-Datei

Wenn der Bildschirm aktualisiert wird, siehst du jetzt den Text, den du der Hauptdatei hinzugefügt hast, unter dem ursprünglichen Titel data_wrangling_exercises. Direkt darüber siehst du den Text deiner Commit-Nachricht und die ungefähre Zeit, die vergangen ist, seit du auf "Änderungen committen" geklickt hast. Wenn du auf den Text "2 Commits" rechts daneben klickst, siehst du die "Commit-Historie", die dir alle Änderungen (bisher nur zwei) an diesem Projektarchiv anzeigt, wie in Abbildung 1-9 dargestellt. Wenn du sehen willst, wie ein Commit eine bestimmte Datei verändert hat, klickst du einfach auf den sechsstelligen Code auf der rechten Seite und du erhältst eine so genannte Diff-Ansicht (für "Differenz") der Datei. Auf der linken Seite siehst du die Datei, wie sie vor dem Commit existierte, und auf der rechten Seite die Version der Datei in diesem Commit.

A brief commit history for our new repo.
Abbildung 1-9. Eine kurze Commit-Historie für unser neues Repo

An dieser Stelle fragst du dich vielleicht, was das mit dem Sichern von Code zu tun hat, denn wir haben ja nur ein paar Schaltflächen angeklickt und Text bearbeitet. Jetzt, wo wir ein "Repo" auf GitHub angelegt haben, können wir eine Kopie davon auf unserem lokalen Rechner erstellen und über die Kommandozeile "Commits" von funktionierendem Code machen und sie mit ein paar Befehlen auf dieser Website sichern.

Zum Sichern lokaler Dateien: Git installieren und konfigurieren

Wie Python selbst, ist Git eine Software, die du auf deinem Computer installierst und über die Kommandozeile ausführst. Da die Versionskontrolle ein wesentlicher Bestandteil der meisten Programmierprozesse ist, ist Git auf macOS und Linux bereits integriert; eine Anleitung für Windows-Rechner findest du auf GitHub, und auf ChromeBooks kannst du Git mit der Termux-App installieren. Sobald du die notwendigen Schritte durchgeführt hast, öffne ein Terminalfenster und gib Folgendes ein:

git --version

Gefolgt von "Enter". Wenn etwas gedruckt wird, hast du Git bereits! Du musst jedoch noch deinen Benutzernamen und deine E-Mail-Adresse festlegen (du kannst jeden beliebigen Namen und jede beliebige E-Mail-Adresse verwenden), indem du die folgenden Befehle ausführst:

git config --global user.email your_email@domain.com
git config --global user.name your_username

Nachdem du Git installiert und deinen Namen und deine E-Mail-Adresse zu deinem lokalen Git-Konto hinzugefügt hast, musst du unter einen Authentifizierungsschlüssel auf deinem Gerät erstellen, damit GitHub beim Sichern deines Codes weiß, dass er wirklich von dir stammt (und nicht nur von jemandem am anderen Ende der Welt, der deinen Benutzernamen und dein Passwort herausgefunden hat).

Dazu musst du einen sogenannten SSH-Schlüsselerstellen - einelange, eindeutige Zeichenkette, die auf deinem Gerät gespeichert ist und von GitHub zur Identifizierung verwendet werden kann. Die Erstellung dieser Schlüssel über die Kommandozeile ist ganz einfach: Öffne ein Terminalfenster und gib ein:

ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

Wenn du die Eingabeaufforderung "Gib eine Datei an, in der der Schlüssel gespeichert werden soll" siehst, drückst du einfach die Eingabetaste oder den Zeilenschalter, damit der Standard-Speicherort gespeichert wird (so kannst du ihn später leichter finden, wenn du ihn zu GitHub hinzufügen willst). Wenn du die folgende Eingabeaufforderung siehst:

Enter passphrase (empty for no passphrase):

füge auf jeden Fall eine Passphrase hinzu! Und lass es nicht das Passwort für dein GitHub-Konto (oder ein anderes). Da du diese Passphrase jedoch jedes Mal eingeben musst, wenn du deinen Code auf GitHub sichern willst, muss sie einprägsam sein,17 muss sie einprägsam sein - zum Beispiel die ersten drei Wörter der zweiten Strophe deines Lieblingslieds oder -gedichts. Solange sie mindestens 8-12 Zeichen lang ist, bist du bereit!

Nachdem du deine Passphrase zur Bestätigung erneut eingegeben hast, kannst du deinen Schlüssel in dein GitHub-Konto kopieren, damit GitHub den Schlüssel in deinem Konto mit dem auf deinem Gerät abgleichen kann. Dazu klickst du zunächst auf dein Profilsymbol in der oberen rechten Ecke von GitHub und wählst Einstellungen aus dem Dropdown-Menü. Klicke dann in der linken Navigationsleiste auf die Option "SSH- und GPG-Schlüssel". Oben rechts klickst du auf die Schaltfläche "Neuer SSH-Schlüssel", wie in Abbildung 1-10 dargestellt.

SSH key landing page on GitHub.com.
Abbildung 1-10. SSH-Schlüssel Landing Page auf GitHub.com

Um auf den soeben erzeugten SSH-Schlüssel zuzugreifen, musst du zum Hauptbenutzerordner auf deinem Gerät navigieren (das ist der Ordner, in dem sich ein neues Terminalfenster öffnet) und ihn (vorübergehend) so einstellen, dass versteckte Dateien angezeigt werden:

Chromebook

Dein Hauptbenutzerordner ist nur derjenige, der Linux-Dateien heißt. Um versteckte Dateien einzublenden, klicke einfach auf die drei gestapelten Punkte oben rechts im Dateifenster und wähle "Versteckte Dateien einblenden".

macOS

Verwende die Tastenkombination Befehl-Umschalt-. um versteckte Dateien ein-/auszublenden.

Windows

Öffne den Datei-Explorer in der Taskleiste und wähle Ansicht → Optionen → "Ordner- und Suchoptionen ändern". Wähle auf der Registerkarte Ansicht unter "Erweiterte Einstellungen" die Option "Versteckte Dateien, Ordner und Laufwerke anzeigen" und klicke dann auf OK.

Suche den Ordner (es ist tatsächlich ein Ordner!) namens .ssh und klicke ihn an. Öffne dann mit einem einfachen Texteditor (wie Atom) die Datei id_rsa.pub. Markiere die Datei mit der Tastatur, kopiere sie und füge sie in das leere Textfeld mit der Bezeichnung Key ein (siehe Abbildung 1-11).

Uploading your SSH key to your GitHub.com account.
Abbildung 1-11. Hochladen deines SSH-Schlüssels auf dein GitHub.com-Konto

Gib dem Schlüssel einen Namen, damit du weißt, zu welchem Gerät er gehört, und klicke auf "Neuen SSH-Schlüssel hinzufügen" - wahrscheinlich musst du dein Hauptpasswort für GitHub erneut eingeben. Das war's! Jetzt kannst du die versteckten Dateien wieder versteckt lassen und die Verbindung deines GitHub-Kontos mit deinem Gerät und/oder Colab-Konto beenden.

Tipp

Ich empfehle, zum Kopieren/Einfügen deines SSH-Schlüssels Tastenkombinationen zu verwenden, da die exakte Zeichenfolge (einschließlich Leerzeichen) wichtig ist; wenn du eine Maus verwendest, könnte etwas herumgeschoben werden. Wenn du deinen Schlüssel einfügst und GitHub eine Fehlermeldung ausgibt, gibt es einige Möglichkeiten, die du ausprobieren kannst:

  • Vergewissere dich, dass du den Inhalt der .pub-Datei hochlädst (mit der anderen Datei willst du eigentlich gar nichts machen).

  • Schließe die Datei (ohne zu speichern) und versuche es erneut.

Wenn du immer noch Probleme hast, kannst du einfach deinen gesamten .ssh-Ordner löschen und neue Schlüssel erzeugen - da sie noch nirgendwo hinzugefügt wurden, ist es kein Verlust, einfach neu zu starten!

Alles zusammenbinden

Unser letzter Schritt besteht darin, eine verlinkte Kopie unseres GitHub-Repos auf unserem lokalen Computer zu erstellen. Das geht ganz einfach über den Befehl git clone:

  1. Öffne ein Terminalfenster und navigiere zu deinem Ordner data_wrangling.

  2. Auf GitHub gehst du zu your_github_username/data_wrangling_exercises.

  3. Auf GitHub klickst du oben auf der Seite auf die SchaltflächeCode.

  4. Im Pop-up-Fenster "Klonen mit SSH" klickst du auf das kleine Zwischenablage-Symbol neben der URL, wie in Abbildung 1-12 dargestellt.

    Retrieving the repo's SSH location.
    Abbildung 1-12. Abrufen des SSH-Standorts des Repos
  5. Zurück in deinem Terminalfenster tippst du git clone ein und füge die URL aus der Zwischenablage ein (oder gib sie bei Bedarf direkt ein). Sie wird ungefähr so aussehen:

    git clone git@github.com:susanemcg/data_wrangling_exercises.git
  6. Möglicherweise wird eine Eingabeaufforderung angezeigt, in der du gefragt wirst, ob du das Ziel zur Liste der bekannten Hosts hinzufügen möchtest. Gib ein yes ein und drücke den Zeilenschalter. Wenn du dazu aufgefordert wirst, gib dein SSH-Passwort ein.

  7. Wenn du die Meldung "Fertig" siehst, tippe ls. Du solltest jetzt data_wrangling_exercises in deinem data_wrangling Ordner sehen.

  8. Schließlich gibst du ein cd data_wrangling_exercises ein und drücke die Eingabetaste, um dein Terminal in das kopierte Repo zu verschieben. Verwende den Befehl ls, damit das Terminal die Datei README.md anzeigt.

Uff! Das hört sich wahrscheinlich nach viel an, aber bedenke, dass du einen SSH-Schlüssel nur einmal erstellen musst und dass du den Klonprozess nur einmal pro Repository durchlaufen musst (und alle Übungen in diesem Buch können im selben Repository durchgeführt werden).

Um zu sehen, wie das alles funktioniert, fügen wir unsere Python-Datei zu unserem Repo hinzu. Navigiere in einem Finder-Fenster zu deinem data_wrangling-Ordner. Speichere und schließe deine HelloWorld.py oder HelloWorld.ipynb Datei und ziehe sie in den Ordner data_wrangling_exercises. Verwende im Terminal den Befehl ls, um zu bestätigen, dass du deine Python-Datei siehst.

Als letzten Schritt verwenden wir den Befehl add, um Git mitzuteilen, dass unsere Python-Datei Teil des Backups auf GitHub sein soll. Anschließend verwenden wir commit, um die aktuelle Version zu speichern, und push, um sie auf GitHub hochzuladen.

Dazu starten wir und rufen git status im Terminalfenster auf. Daraufhin sollte eine Meldung erscheinen, in der von "nicht verfolgten Dateien" die Rede ist und die den Namen deiner Python-Datei anzeigt. Das ist das, was wir erwartet haben (aber die Ausführung von git status ist eine gute Möglichkeit, das zu bestätigen). Jetzt führen wir den zuvor beschriebenen Prozess des Hinzufügens, Commitings und Pushens durch. Beachte, dass die Befehle und add eine Meldung im Terminal ausgeben:

  1. Führe im Terminal Folgendes aus git add your_python_filename.

  2. Dann laufen git commit -m "Adding my Hello World Python file." your_python_filenameDer Befehl -m zeigt an, dass der zitierte Text als Commit-Nachricht verwendet werden soll - das Kommandozeilen-Äquivalent zu dem, was wir vor ein paar Minuten auf GitHub für unser README-Update eingegeben haben.

  3. Führen Sie schließlich aus git push.

Mit dem letzten Befehl werden deine Dateien auf GitHub hochgeladen (beachte, dass dies natürlich nicht funktioniert, wenn du keine Internetverbindung hast, aber du kannst jederzeit Commits machen und den Befehl push ausführen, sobald du wieder Internet hast). Um zu bestätigen, dass alles richtig funktioniert hat, lade deine GitHub-Reposeite neu. Du wirst sehen, dass deine Python-Datei und die Commit-Nachricht hinzugefügt wurden!

Zum Sichern von Online-Python-Dateien: Google Colab mit GitHub verbinden

Wenn du alle deine Daten online verarbeitest, kannst du Google Colab direkt mit deinem GitHub-Konto verbinden. Vergewissere dich, dass du in deinem Google-Konto angemeldet bist und besuche dann https://colab.research.google.com/github. In dem Pop-up-Fenster wirst du aufgefordert, dich bei deinem GitHub-Konto anzumelden und dann "Colaboratory autorisieren". Sobald du das getan hast, kannst du ein GitHub-Repository aus dem Dropdown-Menü auf der linken Seite auswählen, und alle Jupyter-Notizbücher, die sich in diesem Repository befinden, werden unten angezeigt.

Hinweis

Die Google Colab-Ansicht deiner GitHub-Repos zeigt dir nur Jupyter-Notizbücher (Dateien, die auf .ipynb enden). Um alle Dateien in einem Repository zu sehen, musst du es auf der GitHub-Website besuchen.

Alles zusammenbinden

Wenn du mit Google Colab arbeitest, musst du nur auf Datei → Kopie in GitHub speichern klicken, um eine neue Datei zu deinem GitHub-Repository hinzuzufügen. Nach dem automatischen Öffnen und Schließen einiger Pop-ups (Colab meldet sich im Hintergrund bei deinem GitHub-Konto an), kannst du im Dropdown-Menü oben links wieder das GitHub-Repository auswählen, in dem du deine Datei speichern möchtest. Dann kannst du den Namen des Notizbuchs beibehalten (oder ändern) und eine Commit-Nachricht hinzufügen. Wenn du in diesem Fenster das Häkchen bei "Link zum Colaboratory einfügen" setzt, enthält die Datei in GitHub ein kleines Etikett "In Colab öffnen", auf das du klicken kannst, um das Notizbuch automatisch in Colab von GitHub aus zu öffnen. Alle Notizbücher, die du nicht explizit auf diese Weise in GitHub sicherst, befinden sich in deinem Google Drive in einem Ordner namens Colab Notebooks. Du kannst sie auch finden, indem du die Colab-Website besuchst und oben auf den Reiter Google Drive auswählst.

Fazit

Das Ziel dieses Kapitels war es, dir einen allgemeinen Überblick über das zu geben, was du in diesem Buch lernen kannst: was ich mit Data Wrangling und Datenqualität meine und warum ich glaube, dass die Programmiersprache Python das richtige Werkzeug für diese Arbeit ist.

Außerdem haben wir uns mit der Einrichtung befasst, die du brauchst, um mit Python für die Datenverarbeitung anzufangen (und weiterzumachen!), indem wir dir Anleitungen für die Einrichtung der Programmierumgebung deiner Wahl gegeben haben: die Arbeit mit "eigenständigen" Python-Dateien oder Jupyter-Notizbüchern auf deinem eigenen Gerät oder die Verwendung von Google Colab, um Jupyter-Notizbücher online zu nutzen. Schließlich haben wir uns damit beschäftigt, wie du Versionskontrolle nutzen kannst, um deine Arbeit zu sichern, weiterzugeben und zu dokumentieren - unabhängig davon, wie du sie einrichtest.

Im nächsten Kapitel gehen wir weit über unser "Hello World"-Programm hinaus, indem wir uns mit den Grundlagen der Programmiersprache Python beschäftigen und sogar unser erstes Datenverarbeitungsprojekt in Angriff nehmen: ein Tag im Leben des New Yorker Citi Bike-Systems.

1 Wir werden diese in den Kapiteln 4 und 5 im Detail behandeln.

2 In der Welt der Informatik wird dies oft als "Garbage in/Garbage out" bezeichnet.

3 Offenlegung: Viele Mitarbeiter von ProPublica, darunter der leitende Reporter dieser Serie, sind ehemalige Kollegen von mir.

4 Die Serie "Machine Bias" löste in der akademischen Gemeinschaft eine heftige Debatte aus, in der einige die Definition von Voreingenommenheit durch ProPublica in Frage stellten. Viel wichtiger ist jedoch, dass die Kontroverse einen völlig neuen Bereich der akademischen Forschung ins Leben gerufen hat: Fairness und Transparenz beim maschinellen Lernen und bei der Intelligenz.

5 Erinnere dich daran, dass auch ein falsch platziertes Leerzeichen in Python Probleme verursachen kann.

6 Mit der gleichen Software kannst du auch Notizbücher in R und anderen Skriptsprachen erstellen.

7 Die Zahlen hier werden Versionsnummern genannt und sie steigen mit der Zeit an, wenn die Sprache Python verändert und erweitert wird. Die erste Zahl (3) steht für die "Hauptversion" und die zweite Zahl (9) für die "Nebenversion". Anders als bei normalen Dezimalzahlen ist es möglich, dass die Minor-Version höher als 9 ist, so dass du in Zukunft vielleicht auf Python 3.12 stoßen wirst.

8 Miniconda ist eine kleinere Version der beliebten Software "Anaconda", aber da letztere die Programmiersprache R und eine Reihe anderer Dinge installiert, die wir nicht brauchen, werden wir Miniconda verwenden, um Platz auf unserem Gerät zu sparen.

9 Wenn du ein 32-Bit Chromebook hast, kann der Dateiname etwas anders lauten.

10 Der Dateiname des Installationsprogramms kann eine andere Nummer haben, wenn du mit einem 32-Bit-System arbeitest.

11 Wenn nicht anders angegeben, musst du nach allen Terminalbefehlen die Eingabetaste oder den Zeilenschalter drücken.

12 Wenn du eine Eingabeaufforderung erhältst, wie du "diese Datei öffnen" willst, empfehle ich dir, Google Chrome auszuwählen.

13 Keine Sorge, es ist nicht im Internet zu sehen!

14 Frühe Versionen von Jupyter Notebook waren als "iPythonNotebook" bekannt, daher auch die Dateierweiterung .ipynb.

15 Vor allem das "zukünftige Du"!

16 Das bedeutet, dass ich nicht mehr die Ausgabe erhalte, die ich erwarte, oder dass ich Fehler und überhaupt keine Ausgabe erhalte!

17 Je nach Gerät kannst du dieses Passwort in deinem "Schlüsselbund" speichern. Weitere Informationen findest du in den Dokumenten auf GitHub.

Get Praktisches Python Data Wrangling und Datenqualität now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.