Mit ChatGPT erstelltes Bild
Pandas ist eines der beliebtesten verfügbaren Instruments zur Datenbearbeitung und -analyse und bekannt für seine Benutzerfreundlichkeit und seine leistungsstarken Funktionen. Aber wussten Sie, dass Sie damit auch Datenpipelines zur Verarbeitung und Analyse von Datensätzen erstellen und ausführen können?
In diesem Tutorial lernen wir, wie man mit der „Pipe“-Methode von Pandas durchgängige Information-Science-Pipelines erstellt. Die Pipeline umfasst verschiedene Schritte wie Datenaufnahme, Datenbereinigung, Datenanalyse und Datenvisualisierung. Um die Vorteile dieses Ansatzes hervorzuheben, vergleichen wir auch pipelinebasierten Code mit Alternativen ohne Pipeline, damit Sie die Unterschiede und Vorteile klar verstehen.
Was ist eine Pandas-Pfeife?
Die Pandas-Pipe-Methode ist ein leistungsstarkes Software, mit dem Benutzer mehrere Datenverarbeitungsfunktionen auf klare und lesbare Weise verketten können. Diese Methode kann sowohl Positions- als auch Schlüsselwortargumente verarbeiten und ist daher flexibel für verschiedene benutzerdefinierte Funktionen.
Kurz gesagt, die „Pipe“-Methode von Pandas:
- Verbessert die Lesbarkeit des Codes
- Ermöglicht die Funktionsverkettung
- Bietet Platz für benutzerdefinierte Funktionen
- Verbessert die Code-Organisation
- Effizient für komplexe Transformationen
Hier ist das Codebeispiel der `pipe`-Funktion. Wir haben die Python-Funktionen `clear` und `evaluation` auf den Pandas DataFrame angewendet. Die Pipe-Methode bereinigt zuerst die Daten, führt eine Datenanalyse durch und gibt die Ausgabe zurück.
(
df.pipe(clear)
.pipe(evaluation)
)
Pandas-Code ohne Pipe
Zuerst schreiben wir einen einfachen Datenanalysecode ohne Verwendung von Pipe, damit wir einen klaren Vergleich haben, wann wir Pipe verwenden, um unsere Datenverarbeitungs-Pipeline zu vereinfachen.
Für dieses Tutorial verwenden wir die On-line-Verkaufsdatensatz – Daten zu beliebten Marktplätzen von Kaggle, das Informationen zu On-line-Verkaufstransaktionen in verschiedenen Produktkategorien enthält.
- Wir laden die CSV-Datei und zeigen die obersten drei Zeilen des Datensatzes an.
import pandas as pd
df = pd.read_csv('/work/On-line Gross sales Information.csv')
df.head(3)
- Bereinigen Sie den Datensatz, indem Sie Duplikate und fehlende Werte löschen und den Index zurücksetzen.
- Spaltentypen konvertieren. Wir werden „Produktkategorie“ und „Produktname“ in Zeichenfolgen und die Spalte „Datum“ in den Datumstyp konvertieren.
- Um eine Analyse durchzuführen, erstellen wir aus einer Spalte „Datum“ eine Spalte „Monat“. Berechnen Sie dann die Mittelwerte der professional Monat verkauften Einheiten.
- Visualisieren Sie das Balkendiagramm der durchschnittlich professional Monat verkauften Einheit.
# knowledge cleansing
df = df.drop_duplicates()
df = df.dropna()
df = df.reset_index(drop=True)
# convert varieties
df('Product Class') = df('Product Class').astype('str')
df('Product Title') = df('Product Title').astype('str')
df('Date') = pd.to_datetime(df('Date'))
# knowledge evaluation
df('month') = df('Date').dt.month
new_df = df.groupby('month')('Items Offered').imply()
# knowledge visualization
new_df.plot(sort='bar', figsize=(10, 5), title="Common Items Offered by Month");
Dies ist ganz einfach, und wenn Sie Datenwissenschaftler oder auch nur Datenwissenschaftsstudent sind, wissen Sie, wie die meisten dieser Aufgaben ausgeführt werden.
Erstellen von Information Science-Pipelines mit Pandas Pipe
Um eine Finish-to-Finish-Information-Science-Pipeline zu erstellen, müssen wir den obigen Code zunächst mithilfe von Python-Funktionen in ein geeignetes Format konvertieren.
Wir erstellen Python-Funktionen für:
- Laden der Daten: Es erfordert ein Verzeichnis mit CSV-Dateien.
- Bereinigen der Daten: Es erfordert den Roh-DataFrame und gibt den bereinigten DataFrame zurück.
- Spaltentypen konvertieren: Es erfordert einen sauberen DataFrame und saubere Datentypen und gibt den DataFrame mit den richtigen Datentypen zurück.
- Datenanalyse: Es erfordert einen DataFrame aus dem vorherigen Schritt und gibt den geänderten DataFrame mit zwei Spalten zurück.
- Datenvisualisierung: Zum Generieren einer Visualisierung sind ein geänderter DataFrame und ein Visualisierungstyp erforderlich.
def load_data(path):
return pd.read_csv(path)
def data_cleaning(knowledge):
knowledge = knowledge.drop_duplicates()
knowledge = knowledge.dropna()
knowledge = knowledge.reset_index(drop=True)
return knowledge
def convert_dtypes(knowledge, types_dict=None):
knowledge = knowledge.astype(dtype=types_dict)
## convert the date column to datetime
knowledge('Date') = pd.to_datetime(knowledge('Date'))
return knowledge
def data_analysis(knowledge):
knowledge('month') = knowledge('Date').dt.month
new_df = knowledge.groupby('month')('Items Offered').imply()
return new_df
def data_visualization(new_df,vis_type="bar"):
new_df.plot(sort=vis_type, figsize=(10, 5), title="Common Items Offered by Month")
return new_df
Wir werden nun die `pipe`-Methode verwenden, um alle oben genannten Python-Funktionen in Reihe zu ketten. Wie wir sehen, haben wir den Pfad der Datei an die Funktion `load_data`, die Datentypen an die Funktion `convert_dtypes` und den Visualisierungstyp an die Funktion `data_visualization` übergeben. Anstelle eines Balkens verwenden wir ein Visualisierungsliniendiagramm.
Durch den Aufbau der Datenpipelines können wir mit verschiedenen Szenarien experimentieren, ohne den Gesamtcode zu ändern. Sie standardisieren den Code und machen ihn lesbarer.
path = "/work/On-line Gross sales Information.csv"
df = (pd.DataFrame()
.pipe(lambda x: load_data(path))
.pipe(data_cleaning)
.pipe(convert_dtypes,{'Product Class': 'str', 'Product Title': 'str'})
.pipe(data_analysis)
.pipe(data_visualization,'line')
)
Das Endergebnis sieht fantastisch aus.
Abschluss
In diesem kurzen Tutorial haben wir die Pandas-Methode „pipe“ kennengelernt und erfahren, wie man sie zum Erstellen und Ausführen durchgängiger Information Science-Pipelines verwendet. Die Pipeline macht Ihren Code lesbarer, reproduzierbarer und besser organisiert. Durch die Integration der Pipe-Methode in Ihren Workflow können Sie Ihre Datenverarbeitungsaufgaben optimieren und die Gesamteffizienz Ihrer Projekte steigern. Darüber hinaus haben einige Benutzer festgestellt, dass die Verwendung von „pipe“ anstelle der Methode „.apply()“ zu deutlich schnelleren Ausführungszeiten führt.
Abid Ali Awan (@1abidaliawan) ist ein zertifizierter Datenwissenschaftler, der gerne Modelle für maschinelles Lernen erstellt. Derzeit konzentriert er sich auf die Erstellung von Inhalten und das Schreiben technischer Blogs zu Technologien für maschinelles Lernen und Datenwissenschaft. Abid hat einen Grasp-Abschluss in Technologiemanagement und einen Bachelor-Abschluss in Telekommunikationstechnik. Seine Imaginative and prescient ist es, mithilfe eines Graph-Neural-Networks ein KI-Produkt für Studenten zu entwickeln, die mit psychischen Erkrankungen zu kämpfen haben.