Dieser Artikel gehört zu unserer Tool Mastery Serie, einer Zusammenstellung von Beiträgen in der Wissensdatenbank mit verschiedenen Arbeitsbeispielen für Designer-Tools. Er befasst sich mit der Nutzung des Python-Tools auf unserem Weg, den Umgang mit Alteryx Designer zu erlernen:
Python ist eine der am schnellsten wachsende Programmiersprachen der Welt und wird für eine Vielzahl von Anwendungen verwendet, die von der grundlegenden Datenmanipulation über Datenwissenschaft bis hin zur Softwareentwicklung reichen. Mit dem Release 2018.3 kommt das lang erwartete und ersehnte Python-Tool! Ähnlich wie das R-Tool bietet das Python-Tool die Möglichkeit, Code nahtlos als Bestandteil Ihres Alteryx-Workflows auszuführen. Wie schon beim R-Tool benötigen Sie etwas Programmiererfahrung mit der genannten Sprache, um das Potenzial dieses Tools voll auszuschöpfen. In diesem Artikel zur Tool-Beherrschung legen wir den Grundstein für die Nutzung des Tools.
Wenn Sie das Python-Tool zum ersten Mal auf Ihrem Canvas ablegen, sehen Sie den folgenden Dialog im Konfigurationsfenster des Tools. Dies ist eine Erinnerung daran, Ihren Workflow immer dann auszuführen, wenn Sie Ihr Python-Tool mit einer neuen Eingabedatenquelle verbinden. Dadurch werden die Eingabedaten in das Python-Tool geladen, damit Sie diese in Ihren Python-Code integrieren können.
Wie in diesem Text beschrieben, müssen Sie lediglich abwarten, um die Jupyter Notebook-Schnittstelle zu initiieren. Die IT benötigt einige Sekunden, um die Jupyter Notebook-Schnittstelle beim ersten Öffnen eines Python-Tools in einer Designer-Instanz zu berücksichtigen. Die zunächst angezeigte Meldung wird durch eine Jupyter Notebook-Schnittstelle ersetzt.
Grundlegende Informationen zu Jupyter Notebooks finden Sie in der Einführung für Einsteiger.
Der erste Programmierschritt bei der Nutzung des Python-Tools ist das Importieren des Alteryx API-Pakets, das den Austausch von Daten zwischen der Alteryx-Engine und dem Python-Tool ermöglicht. Wenn Sie Daten aus der Alteryx-Engine einlesen oder aus dem Python-Tool an die Engine übergeben möchten, sollte Ihr Code folgendermaßen beginnen:
from ayx import Alteryx
Dieses Codefragment ist so fundamental, dass es automatisch in die erste Zelle des Python-Tools eingefügt wird!
Um eine einzelne Zelle im Python-Tool auszuführen, klicken Sie auf die Wiedergabe-Schaltfläche (Run) in der oberen Symbolleiste. Alternativ können Sie die Tastenkombination Umschalttaste + Eingabetaste verwenden.
Neben dem AYX-Paket enthält das Python-Tool einige Python-Pakete, die standardmäßig geladen werden. Diese Pakete sind in der Hilfedokumentation aufgeführt und beziehen sich hauptsächlich auf Datenwissenschaft. Weiterhin steht ein sehr informativer Artikel zur Verfügung, der sich mit der Funktion jedes dieser vorinstallierten Pakete beschäftigt. Um ein bereits installiertes Paket zu laden, können Sie den Importbefehl verwenden, als würden Sie ein Python-Skript außerhalb von Alteryx erstellen. Wenn Sie eine Python-Bibliothek installieren möchten, die standardmäßig nicht im Tool enthalten ist, können Sie die Funktion Package.installPackages() nutzen.
Das Sternchen (*), das üblicherweise an der Position der Zellennummer angezeigt wird, bedeutet, dass die Zelle gegenwärtig ausgeführt wird.
Nach erfolgreicher Installation eines Pakets sehen Sie eine Variante der folgenden Meldungen in Verbindung mit Abhängigkeiten und der Version des installierten Pakets.
Optional haben Sie folgende Möglichkeit: Wenn Sie diese Demonstration nachvollziehen möchten, laden Sie bitte den diesem Artikel beigefügten Iris-Datenbestand herunter!
Wenn Sie Daten über den Eingabeanker in Alteryx einbringen, müssen Sie den Workflow ausführen, um die eingehenden Daten für das Notebook verfügbar zu machen. Nach dem Ausführen des Workflows können Sie die Funktion Alteryx.read() nutzen, um die Daten an Python zu übergeben. Das einzige Argument für diese Funktion ist die spezifische Verbindung, die Sie einlesen. Wie im R-Tool ist dieses Argument eine Zeichenfolge und muss mit Anführungszeichen versehen werden.
Um diesen Datenstrom als Variablenname „data“ einzulesen, würde der Code wie folgt lauten:
data = Alteryx.read("#1")
Wenn Sie versuchen, Daten einzulesen, bevor Sie den gesamten Workflow ausgeführt haben, erhalten Sie vermutlich diese Fehlermeldung für nicht gefundene Dateien:
Die Lösung ist, den Workflow zu speichern und anschließend auszuführen. Wenn Sie den Code in der Zelle das nächste Mal mithilfe der Wiedergabe-Schaltfläche ausführen, sollte die Meldung nicht mehr erscheinen.
Alles, was in das Python-Tool eingelesen wird, wird als Pandas DataFrame behandelt. Dies bietet mehr Flexibilität bei der Verarbeitung der Daten in Python. Sie können das Datenformat nach dem Einlesen ändern, doch Sie müssen alle Ausgaben zurück an einen Pandas DataFrame übergeben.
Nun habe ich meine Daten übernommen und möchte sie analysieren. Zunächst erstelle ich eine neue Zelle, indem ich auf das Plus-Symbol neben der Schaltfläche zum Speichern/Erstellen eines Kontrollpunkts klicke. Alternativ könnte ich das Tastaturkürzel B verwenden, um eine Zelle unterhalb meiner aktuellen Zelle hinzuzufügen.
Weitere hilfreiche Zellen- und Notebook-Funktionen finden Sie zudem in der Symbolleiste rechts neben der Schaltfläche zum Einfügen einer Zelle unterhalb der aktuellen Position. Die Schaltflächen von links nach rechts sind: Speichern, eine Zelle hinzufügen , Zelle(n) ausschneiden , Zelle(n) kopieren , Zelle(n) einfügen , Zelle(n) nach oben verschieben , Zelle(n) nach unten verschieben , Ausführen , Stopp , Kernel neu starten , sowie Kernel und Notebook neu starten . Für alle diese Schaltflächen stehen entsprechende Tastenkombinationen zur Verfügung. Eine vollständige Liste der Jupyter Notebook-Tastenkombinationen finden Sie in der oberen Symbolleiste unter „Hilfe > Tastenkombinationen“.
Für diese Demonstration möchte ich eine Cluster-Analyse des Iris-Datensatzes durchführen. Daher lade ich in meiner Zelle die Funktion KMeans aus dem Sci-Kit- Modul zum Erlernen von Python (im Lieferumfang der Alteryx Python Tool-Installation enthalten) und schreibe einfachen Code, um Cluster zu erstellen und die resultierenden Cluster-Labels zu drucken.
Nun kann ich Cluster mithilfe der Python-Bibliothek matplotlib.pyplot (ebenfalls standardmäßig im Python-Tool enthalten) visualisieren.
Eine Ausgabe aus dem Python-Tool kann anschließend mithilfe der Funktion Alteryx.write() erfolgen. Diese Funktion wird gegenwärtig nur für Pandas DataFrames unterstützt. Wenn Sie versuchen, etwas anderes als einen Datenrahmen auszugeben, erhalten Sie folgenden Typenfehler.
Dieser Fehler kann durch Konvertieren Ihrer Ausgabe in einen Pandas DataFrame behoben werden. Wenn Sie noch nicht mit Pandas DataFrames vertraut sind, finden Sie die Dokumentation zum Thema Einführung in Pandas-Datenstrukturen oder die 10-minütige Einführung in Pandas möglicherweise hilfreich. Nachdem Sie den Code mithilfe von Alteryx.write() im Python-Tool geschrieben haben, müssen Sie den gesamten Workflow ausführen, um die Ergebnisse in den Ausgabeankern des Tools sehen zu können.
Nun muss nur noch der Workflow ausgeführt werden, und die Resultate sind in Anker 1 der Python-Tool-Ausgaben verfügbar.
Ich hoffe, dieser Überblick konnte Ihnen die notwendigen Kenntnisse vermitteln, Daten mit dem Python-Tool einzulesen, auszugeben und zu verarbeiten. Die einzigen Grenzen setzt Ihnen nun nur noch Ihre Fantasie!
Wissenswertes und zukünftige Updates!
Ab der Version 2018.4 können Sie extern erstellte Python-Skripte und Jupyter Notebooks laden.
Metadaten werden in nachgeschalteten Tools für Daten, die aus dem Python-Tool stammen, nicht konsistent ausgefüllt.
Beim Einlesen der Daten in das Python-Tool erfolgt eine implizite Typenkonvertierung von Boolesch zu Integer. In gleicher Weise erfolgt eine implizite Typenkonvertierung von Boolesch zu Integer beim Schreiben von Ausgaben aus dem Tool.
Ab der Version 2018.4 haben Sie die Möglichkeit, beim Schreiben von Ausgaben Spaltendatentypen zu definieren.
Beim Einlesen und Ausgeben werden gegenwärtig ausschließlich Panda DataFrames unterstützt. Sie können gegenwärtig keine Diagramme ausgeben oder räumliche Objekte einlesen/ausgeben.
Fragekonstanten werden gegenwärtig nicht unterstützt.
Falls Sie uns Ihr Feedback zu diesem Tool hinterlassen möchten, schreiben Sie bitte einen Beitrag auf der Produktideen-Seite! Unsere Produktmanager freuen sich auf Ihre Anregungen für Funktionen oder Hinweise auf Einschränkungen bei der Arbeit mit dem Tool.
Nun sollten Sie über Expertenkenntnisse für die Nutzung des Python-Tools verfügen! Falls Sie einen Anwendungsfall kennen, den wir ausgelassen haben, können Sie gerne nachstehend einen Kommentar hinterlassen!
Sehen Sie sich schon als Tool-Meister? Schreiben Sie uns an Stephanie.jansen@alteryx.com, wenn Sie Ihre kreativen Tool-Anwendungsbeispiele in einem Artikel der Tool Mastery Serie vorstellen möchten.
Haben Sie noch Fragen? Die deutsche Community ist hier, um sie im Forum zu beantworten.
Wenn Sie alle Designer-Tools beherrschen möchten, abonnieren Sie unsere E-Mail-Benachrichtigungen.
*Dieser Beitrag wurde von @SydneyF geschrieben.
Vollständigen Artikel anzeigen