- Was ist Pandas-Paket?
- Installation und erste Schritte
- Laden von Daten aus CSVs in Pandas DataFrame
- Was ist DataFrame und wie funktioniert es?
- Aufteilen von DataFrames
- Mathematische Operationen über DataFrame
Das sieht nach viel zu decken aus. Lass uns jetzt anfangen.
Was ist das Python Pandas-Paket??
Laut der Pandas-Homepage: pandas ist eine Open-Source-Bibliothek mit BSD-Lizenz, die leistungsstarke, einfach zu verwendende Datenstrukturen und Datenanalysetools für die Programmiersprache Python bereitstellt.
Eines der coolsten Dinge an Pandas ist, dass es das Lesen von Daten aus gängigen Datenformaten wie CSV, SQL usw. ermöglicht. sehr einfach, was es gleichermaßen für Anwendungen in Produktionsqualität oder nur für einige Demo-Anwendungen geeignet macht.
Python-Pandas installieren
Nur eine Anmerkung vor dem Start des Installationsprozesses, wir verwenden für diese Lektion eine virtuelle Umgebung, die wir mit dem folgenden Befehl erstellt haben:
python -m virtualenv pandasQuellpandas/bin/aktivieren
Sobald die virtuelle Umgebung aktiv ist, können wir die Pandas-Bibliothek in der virtuellen Umgebung installieren, damit Beispiele, die wir als nächstes erstellen, ausgeführt werden können:
pip install pandasOder wir können Conda verwenden, um dieses Paket mit dem folgenden Befehl zu installieren:
conda installiere pandasWir sehen so etwas, wenn wir den obigen Befehl ausführen:
Sobald die Installation mit Conda abgeschlossen ist, können wir das Paket in unseren Python-Skripten wie folgt verwenden:
Pandas als pd importierenFangen wir jetzt an, Pandas in unseren Skripten zu verwenden.
CSV-Datei mit Pandas DataFrames lesen
Das Lesen einer CSV-Datei ist mit Pandas einfach. Zur Demonstration haben wir eine kleine CSV-Datei mit folgendem Inhalt erstellt:
Name, RollenNr, Aufnahmedatum, NotfallkontaktShubham,1,20-05-2012,9988776655
Gagan,2,20-05-2009,8364517829
Oshima,3,20-05-2003,5454223344
Wyom,4,20-05-2009,1223344556
Ankur,5,20-05-1999,9988776655
Vinod,6,20-05-1999,9988776655
Vipin,7,20-05-2002,9988776655
Ronak,8,20-05-2007,1223344556
DJ,9,20-05-2014,9988776655
VJ,10,20-05-2015,9988776655
Speichern Sie diese Datei im selben Verzeichnis wie das Python-Skript. Sobald die Datei vorhanden ist, fügen Sie den folgenden Codeausschnitt in eine Python-Datei ein:
Pandas als pd importierenStudenten = pd.read_csv("Studenten.csv")
Studenten.Kopf()
Sobald wir das obige Code-Snippet ausführen, sehen wir die folgende Ausgabe:
Die Funktion head() in Pandas kann verwendet werden, um eine Stichprobe von Daten anzuzeigen, die im DataFrame vorhanden sind. Warte, DataFrame? Wir werden im nächsten Abschnitt viel mehr über DataFrame studieren, aber verstehen Sie nur, dass ein DataFrame eine n-dimensionale Datenstruktur ist, die verwendet werden kann, um eine Reihe von Daten zu speichern und zu analysieren oder komplexe Operationen zu bearbeiten.
Wir können auch sehen, wie viele Zeilen und Spalten die aktuellen Daten haben:
Studenten.gestaltenSobald wir das obige Code-Snippet ausführen, sehen wir die folgende Ausgabe:
Beachten Sie, dass Pandas auch die Anzahl der Zeilen beginnend bei 0 zählen.
Es ist möglich, mit Pandas nur Spalten in einer Liste zu erhalten. Dies kann mit Hilfe von Indizierung in Pandas. Schauen wir uns ein kurzes Code-Snippet für dasselbe an:
student_names = studenten['Name']student_names
Sobald wir das obige Code-Snippet ausführen, sehen wir die folgende Ausgabe:
Aber das sieht nicht nach einer Liste aus, oder?? Nun, wir müssen explizit eine Funktion aufrufen, um dieses Objekt in eine Liste umzuwandeln:
student_names = student_names.auflisten()student_names
Sobald wir das obige Code-Snippet ausführen, sehen wir die folgende Ausgabe:
Nur für zusätzliche Informationen können wir sicherstellen, dass jedes Element in der Liste einzigartig ist und wir nur nicht leere Elemente auswählen, indem wir einige einfache Prüfungen hinzufügen, wie:
student_names = studenten['Name'].dropna().einzigartig().auflisten()In unserem Fall ändert sich die Ausgabe nicht, da die Liste bereits keine fehlerhaften Werte enthält.
Wir können auch einen DataFrame mit Rohdaten erstellen und die Spaltennamen mitgeben, wie im folgenden Codeausschnitt gezeigt:
my_data = pd.Datenrahmen([
[1, "Chan"],
[2, "Schmied"],
[3, "Winslet"]
],
column=["Rang", "Nachname"]
)
meine Daten
Sobald wir das obige Code-Snippet ausführen, sehen wir die folgende Ausgabe:
Aufteilen von DataFrames
Das Aufschlüsseln von DataFrames, um nur die ausgewählten Zeilen und Spalten zu extrahieren, ist eine wichtige Funktion, um die Aufmerksamkeit auf die erforderlichen Teile der Daten zu lenken, die wir verwenden müssen. Zu diesem Zweck ermöglicht uns Pandas, DataFrame nach Bedarf mit Anweisungen wie:
- iloc[:4,:] - wählt die ersten 4 Zeilen und alle Spalten für diese Zeilen aus.
- iloc[:,:] - der komplette DataFrame wird ausgewählt
- iloc[5:,5:] - Zeilen ab Position 5 und Spalten ab Position 5.
- iloc[:,0] - die erste Spalte und alle Zeilen für die Spalte.
- iloc[9,:] - die 10. Zeile und alle Spalten für diese Zeile.
Im vorherigen Abschnitt haben wir bereits das Indizieren und Slicing mit Spaltennamen anstelle der Indizes gesehen. Es ist auch möglich, Slicing mit Indexnummern und Spaltennamen zu mischen. Schauen wir uns ein einfaches Code-Snippet an:
Studenten.loc[:5, 'Name']Sobald wir das obige Code-Snippet ausführen, sehen wir die folgende Ausgabe:
Es ist möglich, mehr als eine Spalte anzugeben:
Studenten.loc[:5, ['Name', 'Notfallkontakt']]Sobald wir das obige Code-Snippet ausführen, sehen wir die folgende Ausgabe:
Reihendatenstruktur in Pandas
Genau wie Pandas (eine mehrdimensionale Datenstruktur) ist eine Serie eine eindimensionale Datenstruktur in Pandas. Wenn wir eine einzelne Spalte aus einem DataFrame abrufen, arbeiten wir tatsächlich mit einer Serie:
type(students["Name"])Sobald wir das obige Code-Snippet ausführen, sehen wir die folgende Ausgabe:
Wir können auch unsere eigene Serie konstruieren, hier ist ein Code-Snippet dafür:
Reihe = pd.Serie([ 'Shubham', 3.7])Serie
Sobald wir das obige Code-Snippet ausführen, sehen wir die folgende Ausgabe:
Wie aus dem obigen Beispiel hervorgeht, kann eine Serie auch mehrere Datentypen für dieselbe Spalte enthalten.
Boolesche Filter in Pandas DataFrame
Eine der guten Eigenschaften von Pandas ist die Extraktion von Daten aus einem DataFrame basierend auf einer Bedingung. Wie das Extrahieren von Schülern nur dann, wenn die Rollennummer größer als 6 ist:
roll_filter = Students['RollNo'] > 6roll_filter
Sobald wir das obige Code-Snippet ausführen, sehen wir die folgende Ausgabe:
Das haben wir nicht erwartet. Obwohl die Ausgabe ziemlich eindeutig ist, welche Zeilen den von uns bereitgestellten Filter erfüllt haben, haben wir immer noch nicht die genauen Zeilen, die diesen Filter erfüllt haben. Es stellt sich heraus, dass wir können Filter als DataFrame-Indizes verwenden auch:
Schüler[roll_filter]Sobald wir das obige Code-Snippet ausführen, sehen wir die folgende Ausgabe:
Es ist möglich, mehrere Bedingungen in einem Filter zu verwenden, sodass die Daten nach einem kurzen Filter gefiltert werden können, wie zum Beispiel:
next_filter = (students['RollNo'] > 6) & (students['Name'] > 'S')Studenten[nächster_filter]
Sobald wir das obige Code-Snippet ausführen, sehen wir die folgende Ausgabe:
Berechnung des Medians
In einem DataFrame können wir auch viele mathematische Funktionen berechnen. Wir geben ein gutes Beispiel für die Berechnung des Medians. Der Median wird für ein Datum berechnet, nicht nur für Zahlen. Schauen wir uns ein kurzes Code-Snippet für dasselbe an:
Termine = Studenten['Zulassungsdatum'].astype('datetime64[ns]').Quantil (.5)Termine
Sobald wir das obige Code-Snippet ausführen, sehen wir die folgende Ausgabe:
Wir haben dies erreicht, indem wir zuerst die vorhandene Datumsspalte indiziert haben und dann der Spalte einen Datentyp zur Verfügung gestellt haben, damit Pandas ihn richtig ableiten kann, wenn die Quantilfunktion zur Berechnung des Mediandatums angewendet wird.
Fazit
In dieser Lektion haben wir uns verschiedene Aspekte der Pandas-Verarbeitungsbibliothek angesehen, die wir mit Python verwenden können, um Daten aus verschiedenen Quellen in einer DataFrame-Datenstruktur zu sammeln, die es uns ermöglicht, einen Datensatz anspruchsvoll zu bearbeiten. Es ermöglicht uns auch, eine Teilmenge von Daten zu erhalten, an denen wir momentan arbeiten möchten, und bietet viele mathematische Operationen.
Bitte teilen Sie Ihr Feedback zur Lektion auf Twitter mit @sbmaggarwal und @LinuxHint.