Erreur : either both or neither of x and y should be given
Résolu- Either both or neither of x and y should be given
- Erreur 0x80070643 - Accueil - Windows
- Corriger l'erreur 0x80070643 de la mise à jour KB5034441 de Windows 10 - Accueil - Windows
- J'aime par erreur facebook notification - Forum Facebook
- Java code erreur 1603 ✓ - Forum Windows
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
2 réponses
bonjour,
Te pense que le message d'erreur t'indique qu'il manque un paramètre.
Dans ton explication, tu écris "si ..., alors ...". Il manque le "sinon".
Bonjour,
Explication de l'erreur
L'erreur vient de np.where qui s'utilise de deux manières possibles :
- soit tu donnes juste un paramètre, et la valeur retournée correspond à la zone conservée par np.where :
import numpy as np a = np.arange(10) b = np.where(a < 5)[0] print(b) # [0, 1, 2, 3, 4]
- soit tu donnes trois paramètres (condition, x, y) : si la condition est vraie, alors les données retournées sont prises depuis x, sinon depuis y.
import numpy as np a = np.arange(10) b = np.arange(100, 110) c = np.arange(200, 210) d = np.where(a % 2 == 0, b, c) print(d) # [100 201 102 203 104 205 106 207 108 209]
Comme tu n'es dans aucun de ces deux cas, np.where te dit que tu ne l'as pas appelé avec un nombre de paramètre valide.
Retour à ton problème
Ce que je veux : si la colonne libellé et égale = la colonne catalogue urnes , alors dans la colonne que je veux crée (result), j'inscris ce qu'il est noté dans la colonne consommable
Il te faut donc utiliser la version à trois paramètres. Dans le code que tu proposes, tu ne spécifies pas comment doit être rempli df["Result"] si la condition n'est pas vérifiée, d'où l'erreur. Peut-être veux tu écrire :
df["Result"] = np.where( df["Libellé"] == df["Catalogue urnes"], df["Consommables"], df["Result"] )
Bonne chance