Voici un petit échantillon de mon jeu de données:En utilisant l'opérateur OR semble ne prendre la première des deux conditions lorsqu'il est utilisé avec np.where filtre
Search_Term Exit_Page Unique_Searches Exit_Pages_actual
nitrile gloves /store/catalog/product.jsp? 10 /store/catalog/product.jsp?
zytek gloves /store/product/KT781010 20 /store/pro
ce qui devrait être assez facile, ne sais pas pourquoi je Je n'arrive pas à travailler. J'essaye de tirer dans la colonne Exit_Pages_actual quand tous les caractères dans le Exit_Page quand les 10 premiers caractères sont "/ store/pro" ou "/ store/cat". Quand ce n'est pas le cas, je veux que seulement les 10 premiers caractères de Exit_Page soient tirés. Comme vous pouvez le voir ci-dessus, mon code fonctionne bien pour le catalogue mais pas pour le produit (aka fonctionne pour la première condition dans mon OR mais pas le 2ème par le code ci-dessous). Qu'est-ce qui ne va pas? Donc, il me a pas de message d'erreur, il n'a tout simplement pas donne le bon résultat pour le produit, les sorties que les 10 premiers caractères plutôt que la chaîne entière:
Exit_Pages['Exit_Pages_actual'] = np.where(Exit_Pages['Exit_Page'].str[:10]==('/store/cat' or '/store/pro'),Exit_Pages['Exit_Page'].str[:],Exit_Pages['Exit_Page'].str[:10])
Exit_Pages
la partie «/ store/cat» ou «/ store/pro» est évaluée à «/ store/cat». Ceci est ensuite utilisé dans la comparaison. Vérifiez [priorité d'opérateur] (https://docs.python.org/3/reference/expressions.html). –
Possible copie de [Numpy où la fonction de plusieurs conditions] (https://stackoverflow.com/questions/16343752/numpy-where-function-multiple-conditions) –
@ Tw UxTLi51Nus hmmm, merci pour le commentaire! J'ai essayé quelques autres choses qui ne fonctionnent pas comme ceci: 'Exit_Pages [' Exit_Pages_actual '] = np.where (Exit_Pages [' Exit_Page ']. Str [: 10] =='/store/cat 'ou np. où (Exit_Pages ['Exit_Page']. str [: 10] == '/ store/pro'), Exit_Pages ['Exit_Page']. str [:], Exit_Pages ['Exit_Page']. str [: 10]) ' et cela me donne un ValueError: La valeur de vérité d'une série est ambiguë. Utilisez a.empty, a.bool(), a.item(), a.any() ou a.all(). – mkheifetz