Outil Python
L'outil Python est un éditeur de code destiné aux utilisateurs de Python. Il est recommandé de disposer d'une bonne maîtrise de Python avant d'utiliser cet outil.
depuis ayx importez Alteryx
Alteryx.help().
Support Python
Designer accepte le code personnalisé Python. Alteryx n'offre pas la prise en charge du code Python personnalisé.
Compatibilité de la galerie publique alteryx
Vous envisagez de publier votre workflow sur Gallery.alteryx.com? Vous devez d’abord demander une exemption. Cette restriction ne s’applique pas aux instances privées d’Alteryx Server et d’Alteryx Gallery.
Mise en route
L'interface de la fenêtre de configuration de l'outil Python ressemble à Bloc-notes Jupyter. Si vous n'êtes pas familiarisé avec les Bloc-notes Jupyter, accédez à Aide > Visite de l'interface utilisateur ou Aide > Aide du Bloc-notes. Pour obtenir une assistance avec le code, voir les références supplémentaires disponibles sous l'option Aide de l'outil.
Installez des paquets de data science supplémentaires au besoin
L'outil Python inclut les paquets de data science plus courants suivants :
- ayx : API Alteryx
- geopandas : étend les types de données utilisés par les pandas pour permettre des opérations géographiques sur des types géométriques.
- jupyter : métapaquet Jupyter
- matplotlib : paquet de traçages Python
- numpy : NumPy, traitement de matrices pour les nombres, les chaînes, les enregistrements et les objets.
- pandas : structures de données puissantes pour l'analyse de données, les séries temporelles et les statistiques.
- demandes : HTTP Python pour les humains
- scikit-learn : Un ensemble de modules Python pour l'apprentissage des machines et la recherche de données
- scipy : SciPy, bibliothèque scientifique pour Python
- six : utilitaires de compatibilité avec Python 2 et 3
- SQLAlchemy : bibliothèque d'abstractions de base de données
- modèles de statistiques : calculs et modèles statistiques pour Python
Installation de paquets supplémentaires
Selon le type d'installation de Designer que vous utilisez, vous pouvez installer des paquets supplémentaires à l'aide d'Alteryx.installPackages. L'exemple ci-dessous présente l'installation de keras.
à partir de tout paquet d'importation ayx
Package.installPackages(« keras »)
- Si vous exécutez Alteryx en tant que non-administrateur, vous pouvez installer des paquets Python supplémentaires sans autorisation particulière.
- Si vous exécutez Alteryx admin, vous devez d'abord exécuter Alteryx en tant qu'admnistrateur pour installer des paquets Python supplémentaires. Si vous ne pouvez pas exécuter Alteryx en tant qu'administrateur, vous ne pouvez pas installer de paquets Python supplémentaires.
Connecter les entrées
L'outil Python accepte plusieurs entrées. Une fois les entrées connectées, vous devez exécuter le workflow pour mettre en cache les flux de données entrants.
Pour accéder à une connexion de données entrantes :
- Importez la bibliothèque Alteryx : depuis l'importation ayx d'Alteryx
- Accédez à la connexion et fournissez une variable pour utiliser une référence de données :
- Utilisez le nom de connexion : Alteryx.read("<nom de connexion>")
- Lecture de toutes les connexions et référence à la matrice O-index retournée : Alteryx.read(Alteryx.getIncomingConnectionNames()[<numéro d'indice>])
-
Exécutez votre workflow avant de commencer à travailler avec l'outil Python. L'exécution de votre workflow place vos données en mémoire cache et les rend accessibles pour l'outil Python. Vos données sont ensuite traités comme une infrastructure de données pandas. Pour plus d'informations sur les infrastructures de données pandas, consultez pandas.pydata.org.
depuis toute importation ayx Alteryx
data1 = Alteryx.read("#1")
depuis toute importation ayx Alteryx
data2 = Alteryx.read(Alteryx.getIncomingConnectionNames()[1])
Configurer l’outil
Exécutez votre workflow avant de commencer à travailler avec l'outil Python.
Définir le mode d'exécution du workflow
Démarrer le développement en mode interactif. Ainsi, l'ensemble des erreurs, avertissements et déclarations d'impression s'afficheront dans le Bloc-notes Jupyter. Utilisez le mode Production pour améliorer la vitesse lorsque vous avez terminé le développement et souhaitez seulement exécuter votre code via un interprète Python standard.
Besoin d'imprimer des ensembles de caractères multioctets (MBCS) 0? Voir Dépannage pour les étapes d'impression des jeux de caractères multioctets (MBCS) en mode Production.
Utilisez le mode interactif pour le développement. Vous pouvez ainsi interagir avec les données entrantes via un Bloc-notes Jupyter sans avoir à réexécuter le workflow pour voir les résultats de votre code.
Pour définir le mode interactif :
- Cliquez sur Interactif pour définir le mode interactif.
- Exécutez le workflow. Alteryx place en cache une copie des données entrantes et les met à disposition de l'outil Python.
Après avoir effectué des modifications en amont, vous devriez réexécuter le workflow pour actualiser les données mises en cache. Ainsi, les données mises en cache seront représentatives des données entrantes réelles.
- Le shell Jupyter a exécuté le code dans le Bloc-notes Jupyter.
- Si votre code appelle Alteryx.write(), le shell Jupyter envoie les résultats via les ancrages de sortie.
- Le Bloc-notes Jupyter affiche les éventuels erreurs, avertissements et déclarations d'impression. Cela équivaut à sélectionner Exécuter tout.
En mode Production, Alteryx consolide toutes les cellules Python à partir du Bloc-notes Jupyter au sein d'un script unique en lecture seule. Alteryx utilise ce script de lecture uniquement pour transmettre votre code à l'interprète Python.
Pour définir le mode de production :
- Cliquez sur Production pour définir le mode Production.
- Exécutez le workflow. Alteryx contourne le shell Jupyter et exécute le script en lecture seule via un interprète Python standard. Aucun résultat, aucune erreur, aucun avertissement et aucune déclaration d'impression ne s'imprime dans le Bloc-notes Jupyter.
Pour modifier le script du mode production :
- Cliquez sur le mode Interactif, puis modifiez les cellules dans le Bloc-notes Jupyter. Une fois vos modifications terminées, cliquez sur le mode Production.
Définissez le format de stockage des données
Le format de stockage principal recommandé et par défaut est YXDB. Vous pouvez également sélectionner SQLite.
Pour utiliser le format de stockage YXDB :
- Cliquez sur le menu Alteryx dans la fenêtre de configuration de l'outil
- Assurez-vous que SQLite n’est pas sélectionné
Pour utiliser le format de stockage SQLight :
- Cliquez sur le menu Alteryx dans la fenêtre de configuration de l'outil
- Sélectionnez Sqlite
SQLite | YXDB | |
Blob | Non pris en charge | Pris en charge |
Objets géographiques | Non pris en charge |
Prend en charge la transmission d'objets géographique entre l'outil Python et d'autres outils. Il est utile d'utiliser les balises de métadonnées lors de la création de sorties d'objets géographiques à partir de l'outil Python. Les colonnes d'objets géographiques sont chargées dans les pandas DataFrame sous forme de chaînes contenant des données geoJSON. Afin d'envoyer une colonne géographique (représentée sous forme de chaînes geoJSON) hors de l'outil Python, le troisième paramètre facultatif de 'Alteryx.write()' doit être inclus, spécifiant le type comme SpatialObj. (par exemple, `Alteryx.write(df, 1, {"my_spatial_field": {"type": "SpatialObj"}})`) En outre, plusieurs paquets tels que « geopandas » et leurs dépendances sont inclus et peuvent être importés dans l'outil Python pour utiliser davantage les données géographiques. |
Limitation de colonne | La limite est de 2000 | Aucune limitation |
Note relative aux valeurs nulles | Les colonnes numériques/octets contenant des valeurs nulles seront converties en un type de données float64 - données flottantes à double précision. | YXDB prend en charge les valeurs nulles dans float64 à l'aide de numpy. NaN et dans les types entiers en utilisant des entiers pandas pouvant être annulés. |
Si vous ne modifiez pas la disposition des lignes et n'utilisez pas l'outil Python GeoSpatial, Alteryx vous recommande de trancher les données GeoSpatial hors du jeu de données et de les joindre à nouveau après l'outil Python. Cela est dû au fait que la conversion depuis et vers les données Alteryx Binary et le texte GeoSpatial n'est pas rapide.
Importer un fichier ou un répertoire
Selon le contrôle dont vous souhaitez disposer sur les chemins relatifs, vous pouvez utiliser la fonction d'importation Alteryx à partir du menu Alteryx ou utiliser la commande d'importation. Vous pouvez utiliser la fonction d'importation d'Alteryx pour importer un script Python existant ou un Bloc-notes Jupyter. Pour gérer les chemins relatifs, utilisez la commande d'importation dans la cellule. Les exemples d'importation comprennent l'utilisation de la commande d'importation pour importer un répertoire, ou l'utilisation de la fonction d'importation d'Alteryx pour importer un seul script.
Pour importer un script Python ou un Bloc-notes Jupyter
- Cliquez sur le menu Alteryx, puis sélectionnez Importer le script.
- Cliquez sur Choisir un fichier, puis naviguez jusqu'à un fichier
.py
ou.ipynb
. - Cliquez sur Importer.
Alteryx importe le fichier.
Utilisez le menu Kernel
- Arrêter le traitement : cliquez sur le menu Kernel et sélectionnez Interrompre pour arrêter le traitement.
- Redémarrer le traitement : cliquez sur le menu Kernel, puis sélectionnez une option de Redémarrage pour relancer le traitement de l'environnement interactif.
- Redémarrer le traitement : Cliquez sur le menu Kernel, puis sélectionnez Reconnecter pour effacer les résultats intermédiaires du classeur.
- La modification Kernel ne fournit pas cette fonctonnalité.
- Il est recommandé de ne pas sélectionner Arrêt.
Dortie de données depuis l'outil
Utilisez Alteryx.write pour extraire les données de l'outil.
- Pour envoyer des données à d'autres outils du canevas, utilisez Alteryx.write(<infrastructure de données pandas>, <numéro d'ancrage de sortie>).
Alteryx.write(df,1)
- Alteryx.write accepte uniquement les infrastructures de données pandas. Si vous avez des données dans un autre format, utilisez la bibliothèque pandas pour la convertir en infrastructure de données pandas. La bibliothèque pandas est préinstallée avec Designer et acccessible dans le Bloc-notes Jupyter à l'aide de la commande importer pandas.
- Vous pouvez envoyer jusqu'à cinq infrastructures de données vers les ancrages de sortie.
Meilleures pratiques
Les meilleures pratiques suivantes vous aideront à travailler efficacement avec l'outil Python.
Utilisez la commande Alteryx.getWorkflowConstant pour faire référence à une constante du workflow telle que Engine.WorkflowDirectory. Dans le cas contraire, le résultat ou la sortie de la commande remplace définitivement la commande dans votre Bloc-notes Jupyter lorsque vous exécutez votre code. Évitez d'utliser des wrappers % dans les constantes du workflow. Par exemple, pour appeler le répertoire Engine.WorkflowDirectory, utilisez la commande suivante :
depuis l'importation ayx Alteryx
Alteryx.getWorkflowConstant("Engine.WorkflowDirectory")
Dépannage
Si vous remarquez que le code disparaît des outils Python dans les flux de travail précédemment enregistrés lorsqu'ils sont ouverts dans Alteryx Designer, cela peut être causé par la désactivation de la configuration automatique dans les paramètres utilisateur. Pour résoudre ce problème :
- Activez la Configuration automatique : pour ce faire, consultez les Paramètres utilisateur sous Options. Naviguez vers Modifier les paramètres utilisateur> Avancés, puis désélectionnez Désactiver la configuration automatique. Voir : Paramètres utilisateur.
Ou, - Après l'ouverture du workflow, exécutez le workflow sans cliquer sur l'un des outils Python. Cela remplira les outils Python avec le code Python préexistant.
Pour imprimer des jeux de caractères multioctets (MBCS) en mode Production :
- Cliquez sur le mode Interactif.
- Tapez ce qui suit dans une cellule près du haut du Bloc-notes Jupyter :
import sys import codecs si sys.stdout.encoding ! 'UTF-8': sys.stdout - codecs.getwriter ('utf-8')(sys.stdout.buffer, 'strict') si sys.stderr.encoding ! 'UTF-8': sys.stderr - codecs.getwriter ('utf-8')(sys.stderr.buffer, 'strict')
- Cliquez sur le mode de Production.
- Exécutez le workflow.
Utilisez l'exemple de code suivant pour vous aider à commencer à utiliser des données géographiques
importer geopandas comme gpd
de shapely.geometry forme
d'importation de charges d'importation json -
lire dans dataframe contenant une colonne géospatiale appelée "spatial"df - Alteryx.read("#1") -
convertir colonne spatiale des chaînes de geojson dans des objets galbés
df["spatial"] - df["spatial"].apply(lambda x: Aucun si x n'est aucune autre forme (charges(x)))-
créer un geopandas GeoDataFrame spécifiant la colonne spatiale comme la géométrie gdf
Gpd. GeoDataFrame (df, géométrie "spatiale")