Guide SAS VIYA

SAS Viya & Python : Accéder à une valeur spécifique dans une table CAS

Simon 23 views
Difficulty Level
Débutant
Published on :
Michael

Expert Advice

Michael

En architecture distribuée, ramener un DataFrame entier côté client pour lire une simple valeur est une erreur de performance coûteuse (surcharge réseau et mémoire). Privilégiez cette approche chirurgicale : l'extraction directe via .get() permet d'isoler un scalaire proprement. C'est la méthode idéale pour récupérer des métriques de contrôle (KPIs, flags) afin de piloter conditionnellement la suite de votre script Python

Lors de l'utilisation de l'interface Python pour SAS© Viya (le package SWAT), il est courant de manipuler des objets CASTable. Si l'affichage global d'une table ou l'utilisation de la méthode fetch() pour visualiser les données est simple, l'extraction précise d'une valeur unique (une cellule spécifique définie par sa ligne et sa colonne) nécessite une syntaxe particulière.

Cet article vous montre comment cibler et récupérer une donnée précise.

SAS Viya & Python : Accéder à une valeur spécifique dans une table CAS -

Le Scénario

Vous avez établi votre connexion au serveur CAS et instancié un objet CASTable pointant vers une table existante (par exemple dans la librairie public).

New BufferRO
# Définition de l'objet CASTable
ma_table = conn.CASTable('ma_donnee', caslib='public')
~
~

Vous souhaitez récupérer la valeur située, par exemple, à la ligne 0 de la colonne "MSRP". Si vous faites un simple print(), vous obtenez un aperçu général, mais pas la valeur isolée exploitable dans une variable Python.

La Méthode d'Accès

L'objet retourné par les actions de récupération de données (comme fetch) ou les références de colonnes sur un objet CASTable se comportent de manière similaire aux DataFrames de pandas.

Pour accéder à une cellule spécifique, la logique est la suivante :

  1. Sélectionner la colonne par son nom.

  2. Utiliser la méthode .get() avec l'index de la ligne souhaitée.

Exemple de code

Voici comment procéder pour extraire la valeur :

New BufferRO
# 1. Définir la table (si ce n'est pas déjà fait)
flag = conn.CASTable('lalala', caslib='public')
# 2. Accéder à la valeur (Colonne 'MSRP', Ligne 0)
valeur_precise = flag['MSRP'].get(0)
# 3. Afficher le résultat
print(valeur_precise)
~
~

Dans cet exemple, flag['MSRP'] isole la série de données correspondant à la colonne, et .get(0) récupère la première entrée (index 0). Cette méthode est efficace pour valider des données unitaires ou récupérer des paramètres de contrôle au sein de vos scripts d'automatisation.