Je voudrais appliquer la reconnaissance de formes à travers une table panda et mettre leur code à valide si le nom de l'auteur correspond à un certain motif. Cependant, je reçois seulement les valeurs incorrectes. J'itérer sur chaque ligne, mais je voudrais appliquer la fonction lambda que si la valeur de la cellule correspondante est à 0.Panda - Itérer sur les rangées pour la reconnaissance de formes
Author valid
Andi 0
Tomasius 0
Anke 0
Voici mes codes:
df["valid"] =0
def author_check(x, y):
if str(x) == y:
return 1
else:
return 0
import re
author_list =["Andi","Tomasius"]#]
regex_list = [".*nd*"]
for i in range(len(author_list)):
for x in range(len(regex_list)):
r = re.compile(regex_list[x])
newlist = filter(r.match, author_list)
x = len(list(newlist))
if x>0:
df['brand'] = df.apply(lambda row: author_check(row['Author'], author_list[i]), axis=1)
Une fois que je me présente cette puis je me
Author valid
Andi 0
Tomasius 1
Anke 0
Mais je voudrais avoir
Author valid
Andi 1
Tomasius 0
Anke 0
Qu'est-ce que je fais de mal? Tout indice serait très apprécié!
Cheers, Andi
Merci. Comment ferais-je cela si je cherchais «nd» et «as», c'est-à-dire que je cherchais deux chaînes?
df ['valide'] = np.where (df.Author.str.contains ('nd', 'as'), 1, 0) ne fonctionne pas .. –
Réponse mise à jour pour les expressions régulières. – ASGM