0
votes

Problèmes avec le déballage de Tupl

Dans une fonction, je retourne une liste de deux valeurs si les valeurs sont présentes ou une liste vide, comme ci-dessous: xxx

dans le code principal, je vous attribue à La variable: xxx

mais j'ai eu l'erreur "Pas assez de valeurs pour décompresser (attendu 2, 0)" Donc, dans la fonction, j'ai essayé comme ci-dessous xxx

mais obtenu l'erreur comme "la longueur des valeurs ne correspond pas la longueur de l'index" Et retValue = [0,0] ne donnait aucune erreur et la valeur du newdf ['NeufID'], newdf ['ce temps'] est zéro.

Et, lorsque j'essaie de vérifier si la valeur est nulle dans d'autres lignes sous forme de lignes si (newdf ['elefid'] == 0): , qui donne l'erreur: la valeur de vérité d'une série est ambiguë. Utilisez a.mpose, a.bool (), a.item (), A.ANY () ou a.all ()

J'ai essayé de vérifier len () Ce qui ne fonctionnait pas aussi. Toute aide est appréciée.


0 commentaires

3 Réponses :


0
votes

Je suppose que vous ne pouvez pas attribuer 0 à une colonne. Essayez d'attribuer "" (chaîne vide) ou np.nan . Aussi newdf ['Neufid'] est de type Série et vous ne pouvez pas la comparer avec un bool afin que vous puissiez utiliser newdf ['Neufid']. Videz ou LEN (NEWDF ['"NEWID']) == 0


2 commentaires

essayé retValue = [np.nan, np.nan] et n'a pas reçu l'erreur. Mais, tout en vérifiant si (NEWDF ['NEWID'] == NP.NAN) :, Obtenir l'erreur comme "La valeur de vérité d'une série est ambiguë. Utilisez A.Pool (), a.item (), a.item () , a.any () ou a.all () "


Je suppose que vous devez utiliser NEWDF ['NewID']. Videz pour vérifier s'il est vide, car il s'agit d'un objet de la série et que vous ne pouvez pas le comparer avec un BOOL. Vous pouvez également essayer si LEN (Newdf ['NewID']) == 0



0
votes

Votre code ci-dessous renvoie 1 liste,

newdf['newid'],newdf['thistime'] = func1(newdf['prikey'])


1 commentaires

J'ai vraiment suivi ce lien plus tôt, mais je n'utilise pas plusieurs conditions. Sa juste ne fonctionne pas même pour un seul opérateur



0
votes

Merci Shailleh et Samy pour vos réponses. À l'intérieur de la fonction, j'ai utilisé retValue = [0,0] pour résoudre "pas suffisamment de valeurs pour décompresser (attendu 2, got 0)" Erreur.

L'article https://TowardsDaScience.com/apply-and-lambda-usage-in-pandas-b13a1ea037f7 m'a aidé à utiliser ".apply" sur la série et ci-dessous est le code. xxx

où je vérifie si la valeur du newdf [' '] est zéro ou non.


0 commentaires