Geekflare wird von unserem Publikum unterstützt. Es kann sein, dass wir durch den Kauf von Links auf dieser Seite Affiliate-Provisionen verdienen.
Unter Entwicklung Zuletzt aktualisiert: September 24, 2023
Weitergeben:
Invicti Web Application Security Scanner - die einzige Lösung, die eine automatische Überprüfung von Schwachstellen mit Proof-Based Scanning™ ermöglicht.

Im Laufe der Jahre hat die Verwendung von Python für die Datenwissenschaft unglaublich zugenommen und nimmt täglich weiter zu

Datenwissenschaft ist ein weites Feld mit vielen Teilbereichen, von denen die Datenanalyse unbestreitbar einer der wichtigsten ist. Unabhängig von den eigenen Fähigkeiten in der Datenwissenschaft ist es immer wichtiger geworden, sie zu verstehen oder zumindest ein Grundwissen darüber zu haben.

Was ist Datenanalyse?

Datenanalyse ist die Bereinigung und Umwandlung einer großen Menge unstrukturierter oder ungeordneter Daten mit dem Ziel, wichtige Erkenntnisse und Informationen über diese Daten zu gewinnen, die Ihnen helfen, fundierte Entscheidungen zu treffen.

Es gibt verschiedene Tools, die für die Datenanalyse verwendet werden: Python, Microsoft Excel, Tableau, SaS usw. In diesem Artikel möchten wir uns jedoch darauf konzentrieren, wie die Datenanalyse in Python durchgeführt wird. Genauer gesagt, wie sie mit einer Python-Bibliothek namens Pandas durchgeführt wird

Was ist Pandas?

Pandas ist eine Open-Source-Python-Bibliothek, die zur Datenmanipulation und -verarbeitung verwendet wird. Sie ist schnell und äußerst effizient und verfügt über Tools zum Laden verschiedener Arten von Daten in den Speicher. Sie kann dazu verwendet werden, verschiedene Arten von Daten umzuformen, zu beschriften, zu indexieren oder sogar zu gruppieren

Datenstrukturen in Pandas

Es gibt 3 Datenstrukturen in Pandas, nämlich

  • Reihe
  • DataFrame
  • Panel

Am besten unterscheiden Sie die drei Strukturen, indem Sie sich vorstellen, dass eine Struktur mehrere Stapel der anderen enthält. Ein DataFrame ist auch ein Stapel von Serien und ein Panel ist ein Stapel von DataFrames

Eine Serie ist ein eindimensionales Array

Ein Stapel von mehreren Serien ergibt einen 2-dimensionalen DataFrame

Ein Stapel aus mehreren DataFrames ergibt ein 3-dimensionales Panel

Die Datenstruktur, mit der wir am meisten arbeiten werden, ist der 2-dimensionale DataFrame, der auch die Standarddarstellung für einige Datensätze sein kann, die uns begegnen

Datenanalyse in Pandas

Für diese Artikel ist keine Installation erforderlich. Wir verwenden ein Tool namens Labor, das von Google entwickelt wurde. Es handelt sich dabei um eine Online-Python-Umgebung für Datenanalyse, maschinelles Lernen und KI. Es handelt sich dabei einfach um ein Cloud-basiertes Jupyter-Notebook, auf dem fast alle Python-Pakete vorinstalliert sind, die Sie als Datenwissenschaftler benötigen

Gehen Sie nun zu https://colab.research.google.com/notebooks/intro.ipynb. Sie sollten das folgende Bild sehen

Klicken Sie in der Navigation oben links auf die Option Datei und dann auf die Option "Neues Notizbuch". Daraufhin wird eine neue Jupyter-Notizbuchseite in Ihren Browser geladen. Als erstes müssen wir Pandas in unsere Arbeitsumgebung importieren. Dazu können wir den folgenden Code ausführen

importieren Sie pandas als pd

In diesem Artikel verwenden wir einen Datensatz mit Immobilienpreisen für unsere Datenanalyse. Den Datensatz, den wir verwenden möchten, finden Sie hier. Als Erstes müssen wir diesen Datensatz in unsere Umgebung laden.

Das können wir mit dem folgenden Code in einer neuen Zelle tun

df = pd.read_csv('https://firebasestorage.googleapis.com/v0/b/ai6-portfolio-abeokuta.appspot.com/o/kc_house_data.csv?alt=media &token=6a5ab32c-3cac-42b3-b534-4dbd0e4bdbc0 ', sep=',')

.read_csv wird verwendet, wenn wir eine CSV-Datei lesen wollen und wir eine sep-Eigenschaft übergeben haben, um zu zeigen, dass die CSV-Datei kommagetrennt ist.

Wir sollten auch beachten, dass unsere geladene CSV-Datei in einer Variablen df gespeichert ist.

Wir brauchen die Funktion print() in Jupyter Notebook nicht zu verwenden. Wir können einfach einen Variablennamen in unsere Zelle eingeben und Jupyter Notebook wird ihn für uns ausdrucken.

Wir können das ausprobieren, indem wir df in eine neue Zelle eingeben und ausführen. Es wird uns alle Daten in unserem Datensatz als DataFrame ausgeben.

Aber wir wollen nicht immer alle Daten sehen, manchmal wollen wir nur die ersten Daten und ihre Spaltennamen sehen. Wir können die Funktion df.head() verwenden, um die ersten fünf Spalten zu drucken, und df.tail(), um die letzten fünf zu drucken. Die Ausgabe einer der beiden Funktionen würde wie folgt aussehen;

Wir möchten nach Beziehungen zwischen diesen verschiedenen Zeilen und Spalten von Daten suchen. Die Funktion .describe() genau dies für uns erledigt.

Wenn Sie df.describe() ausführen, erhalten Sie die folgende Ausgabe;

Wir können sofort sehen, dass die Funktion .describe() den Mittelwert, die Standardabweichung, die Minimal- und Maximalwerte und die Perzentile jeder einzelnen Spalte im DataFrame ausgibt. Dies ist besonders nützlich.

Wir können auch die Form unseres 2D DataFrame überprüfen, um herauszufinden, wie viele Zeilen und Spalten er hat. Dies können wir mit df.shape tun, das ein Tupel im Format (Zeilen, Spalten) zurückgibt.

Wir können auch die Namen aller Spalten in unserem DataFrame mit df.columns überprüfen.

Was aber, wenn wir nur eine Spalte auswählen und alle Daten darin zurückgeben möchten? Dies geschieht auf eine ähnliche Weise wie das Durchsuchen eines Wörterbuchs. Geben Sie den folgenden Code in eine neue Zelle ein und führen Sie ihn aus

df['preis ']

Der obige Code gibt die Preisspalte zurück. Wir können noch einen Schritt weiter gehen, indem wir sie in einer neuen Variablen wie folgt speichern

preis = df['preis']

Jetzt können wir jede andere Aktion, die mit einem DataFrame durchgeführt werden kann, mit unserer Preisvariable durchführen, da sie nur eine Teilmenge eines tatsächlichen DataFrame ist. Wir können Dinge wie df.head(), df.shape usw. ausführen.

Wir können auch mehrere Spalten auswählen, indem wir eine Liste von Spaltennamen an df übergeben.

data = df[['Preis', 'Schlafzimmer']]

Wenn wir data.head() in eine neue Zelle eintippen, erhalten wir folgendes Ergebnis

Die obige Art, Spalten zu zerschneiden, gibt alle Zeilenelemente in dieser Spalte zurück. Was aber, wenn wir eine Teilmenge von Zeilen und eine Teilmenge von Spalten aus unserem Datensatz zurückgeben möchten? Dies ist mit .iloc möglich und wird ähnlich wie bei Python Lists indiziert. Wir können auch etwas tun wie

df.iloc[50: , 3]

Das gibt die 3. Spalte von der 50. Zeile bis zum Ende zurück. Das ist ziemlich praktisch und entspricht dem Slicing von Listen in Python.

Unser Datensatz mit den Immobilienpreisen enthält eine Spalte, die den Preis eines Hauses angibt, und eine weitere Spalte, die die Anzahl der Schlafzimmer in diesem Haus angibt. Der Immobilienpreis ist ein kontinuierlicher Wert, es ist auch möglich, dass wir nicht zwei Häuser mit demselben Preis haben. Aber die Anzahl der Schlafzimmer ist ein diskreter Wert, so dass wir mehrere Häuser mit zwei, drei, vier Schlafzimmern usw. haben können.

Was ist, wenn wir alle Häuser mit der gleichen Anzahl an Schlafzimmern erhalten und den Durchschnittspreis für jedes einzelne Schlafzimmer ermitteln wollen? Das ist in Pandas relativ einfach zu bewerkstelligen, es kann als solches gemacht werden;

df.groupby('schlafzimmer ')['preis '].mean()

Bei der obigen Vorgehensweise wird der DataFrame zunächst mit der Funktion df.groupby() nach den Datensätzen mit identischer Schlafzimmernummer gruppiert. Dann weisen wir ihn an, uns nur die Schlafzimmer-Spalte zu liefern, und verwenden die Funktion .mean(), um den Mittelwert für jedes Haus im Datensatz zu ermitteln.

Was ist, wenn wir das oben Gesagte visualisieren möchten? Wir möchten überprüfen, wie der Durchschnittspreis für jede einzelne Schlafzimmernummer variiert? Dann brauchen wir nur den vorherigen Code mit einer .plot() -Funktion zu verknüpfen;

df.groupby('Schlafzimmer ')['Preis '].mean().plot()

Die Ausgabe sieht dann folgendermaßen aus;

Die obige Darstellung zeigt uns einige Trends in den Daten. Auf der horizontalen Achse haben wir eine bestimmte Anzahl von Schlafzimmern (beachten Sie, dass mehr als ein Haus eine Anzahl von X Schlafzimmern haben kann), auf der vertikalen Achse haben wir den Mittelwert der Preise in Bezug auf die entsprechende Anzahl von Schlafzimmern auf der horizontalen Achse. Wir können nun sofort feststellen, dass Häuser mit 5 bis 10 Schlafzimmern viel mehr kosten als Häuser mit 3 Schlafzimmern. Es wird auch deutlich, dass Häuser mit etwa 7 oder 8 Schlafzimmern viel mehr kosten als solche mit 15, 20 oder sogar 30 Zimmern.

Informationen wie die oben genannten sind der Grund, warum die Datenanalyse so wichtig ist. Wir sind in der Lage, nützliche Erkenntnisse aus den Daten zu gewinnen, die ohne Analyse nicht sofort oder gar nicht auffallen würden.

Fehlende Daten

Nehmen wir an, ich nehme an einer Umfrage teil, die aus einer Reihe von Fragen besteht. Ich gebe einen Link zu der Umfrage an Tausende von Personen weiter, damit sie ihr Feedback abgeben können. Mein ultimatives Ziel ist es, eine Datenanalyse mit diesen Daten durchzuführen, damit ich einige wichtige Erkenntnisse aus den Daten gewinnen kann.

Nun kann eine Menge schief gehen. Einige Umfrageteilnehmer könnten sich bei der Beantwortung einiger meiner Fragen unwohl fühlen und diese leer lassen. Viele Leute könnten das Gleiche für mehrere Teile meiner Umfragefragen tun. Stellen Sie sich jedoch vor, ich würde in meiner Umfrage numerische Daten erheben und für einen Teil der Analyse müsste ich entweder die Summe, den Mittelwert oder eine andere arithmetische Operation ermitteln. Mehrere fehlende Werte würden zu einer Menge Ungenauigkeiten in meiner Analyse führen. Ich muss also einen Weg finden, diese fehlenden Werte zu finden und sie durch Werte zu ersetzen, die sie annähernd ersetzen können.

Pandas bietet uns eine Funktion zum Auffinden fehlender Werte in einem DataFrame namens isnull().

Die isnull() -Funktion kann wie folgt verwendet werden;

df.isnull()

Dies gibt einen DataFrame mit Booleschen Werten zurück, der uns sagt, ob die ursprünglich vorhandenen Daten wirklich fehlen oder falsch sind. Die Ausgabe würde wie folgt aussehen;


Wir brauchen eine Möglichkeit, alle diese fehlenden Werte zu ersetzen. Meistens kann die Auswahl der fehlenden Werte als Null genommen werden. Manchmal wird auch der Mittelwert aller anderen Daten oder der Mittelwert der umliegenden Daten verwendet, je nach Datenwissenschaftler und Anwendungsfall der zu analysierenden Daten.

Um alle fehlenden Werte in einem DataFrame zu füllen, verwenden wir die Funktion .fillna(), die als solche verwendet wird;

df.fillna(0)

In dem obigen Beispiel füllen wir alle leeren Daten mit dem Wert Null. Es könnte aber auch eine beliebige andere Zahl sein, die wir als Wert angeben.

Die Bedeutung von Daten kann gar nicht hoch genug eingeschätzt werden, denn sie helfen uns, die richtigen Antworten aus unseren Daten selbst zu erhalten! Man sagt, Datenanalyse sei das neue Öl für die digitale Wirtschaft.

Alle Beispiele in diesem Artikel finden Sie hier.

Wenn Sie mehr erfahren möchten, besuchen Sie den Online-Kurs Datenanalyse mit Python und Pandas.

  • Gbadebo Bello
    Autor
Dank an unsere Sponsoren
Weitere gute Lektüre zum Thema Entwicklung
Energie für Ihr Unternehmen
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti nutzt das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu überprüfen und innerhalb weniger Stunden verwertbare Ergebnisse zu erzielen.
    Versuchen Sie Invicti
  • Web Scraping, Residential Proxy, Proxy Manager, Web Unlocker, Search Engine Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie Brightdata
  • Monday.com ist ein All-in-One-Betriebssystem, mit dem Sie Projekte, Aufgaben, Arbeit, Vertrieb, CRM, Arbeitsabläufe und vieles mehr verwalten können.
    Versuch Montag
  • Intruder ist ein Online-Schwachstellen-Scanner, der Schwachstellen in Ihrer Infrastruktur aufspürt, um kostspielige Datenschutzverletzungen zu vermeiden.
    Versuchen Sie Intruder