Pandas-Einführung & Tutorials für Anfänger

Pandas-Einführung & Tutorials für Anfänger

  • Künstliche Intelligenz
6 Minuten Lesezeit Aktualisiert Nov 11, 2020

Auf einen Blick: Pandas ist eine leistungsstarke Python-Bibliothek für Datenanalyse und -manipulation, die es Nutzern ermöglicht, verschiedene Datenformate effizient zu konvertieren und zu handhaben. Sie integriert sich mit NumPy und Matplotlib für erweiterte Funktionalität.

  • Pandas ermöglicht eine einfache Umwandlung von Daten in strukturierte Formate wie Dataframes.
  • Es vereinfacht Aufgaben wie das Lesen von CSV/JSON-Dateien und das Durchführen von Datentransformationen.

Dieser Artikel stellt Ihnen Pandas vor, eine Datenanalyse-Bibliothek mit Tools, die auf Python basiert. Wir werden:

  • Schau kurz auf das Werkzeug
  • Ich zeige dir, wie man grundlegende Operationen ausführt

Was sind Pandas?

Ein Python-Pandas-Dataframe ist mehr als nur eine Array-Datenstruktur. Pandas ist ein leistungsstarkes Werkzeug, das es ermöglicht:

  • Konvertiere JSON, CSV, Arrays, Wörterbücher und andere Daten in Zeilen- und Spaltenformat
  • Arbeite mit ihnen mit Namen statt mit Indizes (du kannst immer noch zwischen Indizes wählen).

Kurz gesagt, Pandas ist ein bisschen wie eine Tabelle, aber eine, mit der man mit Code arbeitet, nicht mit Microsoft Excel. Die größten Vorteile:

  • Pandas macht extrem komplizierte Datentransformationen einfach und natürlich.
  • Es umfasst eine Fülle von Mathematik-, Analytik- und anderen Funktionen.

Pandas ist auf NumPy und Matplotlib gebaut. Pandas können also:

Wie Pandas funktionieren

  • Effiziente Arbeit mit großen n-dimensionalen Arrays (NumPy)
  • Nimm Scheiben und transponiere sie in verschiedene Formen (NumPy).
  • Zeichne Diagramme (Matplotlib)

NumPy ist das Arbeitszentrum für die meisten Python-Softwareentwicklungskits (SDKs) für maschinelles Lernen . Da Pandas NumPy erweitert, unterstützt es auch maschinelle Lernoperationen.

Grundlegende Pandas-Operationen

Kommen wir nun zu einem einfachen Tutorial, das dir die Grundlagen der Pandas zeigt.

Erstelle einen Dataframe aus einem Array

Erstellen Sie zunächst einen Dataframe aus einem Array.

Das ist ein 2x2-Array (das heißt, seine Form ist 2x2). Das sind zwei Zeilen und zwei Spalten. Das Array der Spaltennamen muss zwei Elemente haben. Hier geben wir Schüler und Note ein.

    import pandas as pd

df = pd.DataFrame([["Fred",80],["Jill",90]],columns=["student", "grade"])

Dann gib df ein, um es zu sehen. In einem Jupyter Notebook ist die Anzeige formatiert. (Unten erstellen wir eine Tabelle, daher musst du Jupyter verwenden, da Jupyter Grafik unterstützt.)

    df

Der Dataframe-Index ist einfach die Zeilenanzahl, 0 und 1. Es wäre natürlicher, den Studentennamen als Index zu verwenden. Nutze set_index dafür.

Normalerweise erzeugen Pandas Dataframe-Operationen einen neuen Dataframe. Aber wir können in einigen Operationen inplace=True verwenden, um den bestehenden Dataframe zu aktualisieren, ohne einen neuen erstellen zu müssen.

    df.set_index("student",inplace=True)

Jetzt sieht es so aus:

Fügen Sie eine Spalte zu einem Pandas-Dataframe hinzu

Fügen wir dem Pandas-Dataframe eine Spalte hinzu. Dieser Prozess kann man vor Ort durchführen. Es erwartet zwei Werte, da wir zwei Zeilen haben. Wir verwenden einfach Dataframe['neuer Spaltenname'], um die neue Spalte hinzuzufügen. Sie fügt die neue Spalte in den bestehenden Dataframe ein.

    df['birthdate']=['1970-01-12', '1972-05-12']

Filtern Sie den Datenrahmen nach Spaltenwert

Hier wählen wir alle Schüler aus, die am 12.01.1970 geboren wurden:

    df[df['birthdate']=='1970-01-12']

Produziert:

Pandas-Serie: Wählen Sie 1 Spalte aus dem Dataframe aus

Hier wählen wir eine Spalte aus. Das nennt man kein Dataframe, sondern eine Serie. Im Grunde ist es ein Dataframe aus einer Spalte. Aber es handelt sich um einen anderen Objekttyp, daher gibt es leicht andere Methoden.

    grade=df['grade']

Beachten Sie, dass Index weiterhin der Name des Schülers ist. Pandas zeigt an, dass die Note vom Typ int64 ist – eine 64-Bit-Ganzzahl. Das liegt daran, dass NumPy verwendet wird, das viele numerische Typen unterstützt. Reguläres Python unterstützt nur ganze Zahlen und Floatzahlen. NumPy emuliert sie also, genau wie das Python-Dezimalobjekt Dezimalzahlen emuliert.

    student
Fred    80
Jill    90
Name: grade, dtype: int64

Füge Zeilen zu einem Pandas-Dataframe hinzu

Lasst uns noch ein paar Schüler hinzufügen.

Hier erstellen wir einen neuen Dataframe und fügen ihn dem bestehenden an, wodurch ein neues, df3, entsteht. In diesem Beispiel geben wir in df2 speziell Pandas die Schülernamen als Indexwerte, anstatt dies mit set_index zu tun, wie oben beschrieben.

    df2 = pd.DataFrame([[70,'1980-11-12'],[97, '1984-11-01']],index=["Costas", "Ilya"], columns=["grade", "birthdate"])

df3=df.append(df2)

Jetzt haben wir noch mehr Schüler:

Wählen Sie Pandas-Dataframe-Zeilen nach Indexposition aus

Hier wählen wir die ersten beiden Zeilen mit iloc aus, die per Indexoffset auswählt.

    df3.iloc[0:2]

Produziert:

Pandas-Kartenfunktion & Streudiagramm

Um zu veranschaulichen, was Pandas sonst noch können, machen wir ein Streudiagramm. Wir werden das Alter nach Klassenstufe darstellen.

Zuerst müssen wir das Geburtsdatum in eine Zahl umwandeln. Wir machen es aus dem Numpy-Feld des Typs datetime64 mit:

    bday=pd.to_datetime(df3['birthdate'])

Geburtstag ist eine Reihe. Dann berechnen wir das heutige Datum:

    from datetime import datetime 
import numpy as np

today = datetime.now()

Dann zeigen wir, wie man die Map-Funktion verwendet. Diese läuft über jede Zeile im Dataframe oder der Serie.

Das Alter einer Person ist das heutige Datum minus das Geburtsdatum. Diese Subtraktion ergibt uns ein Zeitdelta-Objekt , also teilen wir es durch 365 Tage pro Jahr np.timedelta64(365, 'D'), um eine sehr genaue Schätzung des Alters zu erhalten. (Nicht alle Jahre haben 365 Tage.) Wenn wir das nicht täten, wäre das Alter ein Zeit-Delta-Objekt und kein einzelner ganzzahliger Wert.

    bday.map(lambda l: int((today-l)/np.timedelta64(365, 'D')))

df3['age']=bday.map(lambda l: int((today-l)/np.timedelta64(365, 'D')))

Jetzt sieht es so aus:

Jetzt zeigen wir, wie Pandas Matplotlib einbezieht, indem wir Grade versus Alter aufzeichnen. Wir sagen ihm, welche Spalte für die x- und y-Achse verwendet werden soll, sowie die Farbe für die Punkte.

    df3[['grade','age']].plot.scatter(x='grade',
                      y='age',
                      c='DarkBlue')

Hier ist die Grafik:

Korrelation zwischen Spalten zeigen

Um noch ein Feature zu veranschaulichen: Schauen wir uns an, ob Alter mit der Klasse korreliert. Natürlich nicht, aber zeigen wir einfach, dass Pandas diese und viele andere fortschrittliche Fähigkeiten besitzt.

    df3[['grade','age']].corr()

Man sieht also, dass die Note offensichtlich perfekt mit sich selbst korreliert (1,0), aber überhaupt nicht mit dem Alter (< 0):

Zusätzliche Ressourcen

Für verwandte Lektüre und Tutorials entdecken Sie diese Ressourcen:

Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.

Mehr aus Künstliche Intelligenz

Abonnieren Sie The Brief

Mit der Registrierung für dieses Angebot bestätigen Sie, dass Sie die Datenschutzrichtlinie von BMC gelesen und zugestimmt haben.

Danke

Sie haben The Brief abonniert
Das Briefing umfasst die Mainframe- und Enterprise-Orchestrierung – BMC AMI und Control-M – sowie die Analystenforschung, Kundeneinsätze und Events in beiden Bereichen.