IQ Bot Custom Logic (Python): rationalisez les exclusions dans les boucles

Le processus le plus fréquemment utilisé dans la logique personnalisée d'IQ Bot est le «remplacement». Puisque «l'exclusion» des caractères et symboles inutiles est aussi une sorte de «remplacement», il n'est pas exagéré de dire que 80 à 90% des cas où la logique personnalisée est utilisée.

La méthode de base de remplacement / exclusion est introduite dans cet article, mais aujourd'hui, dans un tel remplacement, le traitement de "l'exclusion" est Voici comment utiliser les boucles pour améliorer l'efficacité.

Quand est-ce utile? (Exclusion)

Supposons que des symboles supplémentaires soient mélangés dans les éléments acquis en raison d'une impression faible.

Si "Dokodemo Shoji" devient "Dokodemo Shoji." (Avec un point à la fin), excluez-le comme ceci.

Remplacement normal (exclusion)


field_value = field_value.replace(".","") 

Ce qui précède est bon car il n'y avait qu'un seul type de bruit (point), mais que dois-je faire si plusieurs types de bruit sont mélangés, tels que «Do * ko; de ', mo: commerce! Things». ??

Si vous le faites correctement, ce sera comme suit.

Remplacement normal (exclusion)


field_value = field_value.replace("*","") 
field_value = field_value.replace(";","") 
field_value = field_value.replace("'","") 
field_value = field_value.replace(",","") 
field_value = field_value.replace(":","") 
field_value = field_value.replace("!","") 
field_value = field_value.replace(".","") 

Si vous souhaitez exclure d'autres bruits tels que "#"! Si vous pensez que oui, ajoutez la logique field_value = field_value.replace (" # "," ").

Ce n'est pas une erreur, mais l'histoire est que vous pouvez écrire avec un peu moins de logique.

Voici comment faire! (Exclusion)

Vous pouvez faire exactement la même chose avec le code ci-dessous.

Utilisez des boucles pour rationaliser les exclusions


ignore_list = ("*",";","'",",",":","!",".")

for i in ignore_list:
    field_value = field_value.replace(i,"")

Si vous souhaitez exclure le bruit de "#" dans ce qui précède! Si vous pensez que oui, ajoutez simplement l'élément # à la fin de ʻignore_list`.

ʻIgnore_list = ("*", ";", "'", ",", ":", "!", ".", "#") `. L'élément avec le dernier «" # "» ajouté.

Explication de l'exclusion à l'aide de boucles

La syntaxe de base permettant à Python de parcourir les séquences est [ici](https://qiita.com/imuimu/items/1e1581bd0749a871c213#%E3%83%AA%E3%82%B9%E3%83] % 88% E9% 85% 8D% E5% 88% 97% E3% 81% AE% E3% 83% AB% E3% 83% BC% E3% 83% 97% E5% 87% A6% E7% 90% 86 )est.

Qu'est-ce qu'une séquence? Si vous pensez, veuillez vous référer à Cet article (lien externe).

Pour plus d'informations pour les débutants, cliquez ici [https://qiita.com/IQ_Bocchi/items/4e9fb40f9a69b22c301a#%E3%83%AA%E3%82%B9%E3%83%88%E3%81%A3%E3 % 81% A6% E4% BD% 95). La destination du lien explique "liste" qui est une sorte de séquence, mais pensez qu'il existe différents types de casiers autres que "liste".

Au fait, ʻignore_list` dans le code ci-dessus est une séquence de type appelée tapple.

Donc, ce qui suit est une boucle qui traite les éléments à l'intérieur du taple un par un. Ce qui suit est une explication de ce que fait chaque ligne.

Utilisez des boucles pour rationaliser les exclusions


for i in ignore_list:                 #ignore_Mettez chaque élément de la liste dans une variable appelée i et traitez-les dans l'ordre.
    field_value = field_value.replace(i,"")   #field_Hors i de la valeur, champ_Remplacer la valeur

Et une table? (Exclusion)

L'efficacité basée sur les boucles peut également être appliquée aux tables.

Dans le cas d'une table, vous pouvez modifier le contenu de l'instruction for en grammaire de la table et la traiter comme suit ...

Utilisez des boucles pour rationaliser les exclusions (pour les tables)


ignore_list = ("Caractères que vous souhaitez exclure 1","Caractères que vous souhaitez exclure 2","Caractères que vous souhaitez exclure 3")

for i in ignore_list:
    df['Nom de colonne'] = df['Nom de colonne'].str.replace(i,"")

Je pense que ce qui suit est magnifique.

Utilisez des boucles pour rationaliser les exclusions (pour les tables)



ignore_list = ("Caractères que vous souhaitez exclure 1","Caractères que vous souhaitez exclure 2","Caractères que vous souhaitez exclure 3")

def table_ignore(x,y):        
    for i in y:
        x = x.y(i,"")
    return x
        
df['Nom de colonne'] = df['Nom de colonne'].apply(table_replace,y=ignore_list)

À première vue, la quantité de code semble être plus importante en bas, mais si vous pouvez avoir plusieurs jeux de chaînes de caractères que vous souhaitez exclure, ou si vous souhaitez appliquer librement ces combinaisons à plusieurs colonnes, le bas est plus flexible. ..

c'est tout!

Comment était-ce? Ma devise est toujours pour les débutants, mais je pense que l'article d'aujourd'hui était pour les débutants en programmation.

Si vous avez des questions, laissez un commentaire sur cet article ou contactez-nous via DM sur Twitter.

Recommended Posts

IQ Bot Custom Logic (Python): rationalisez les exclusions dans les boucles
IQ Bot Custom Logic (Python): rationaliser le traitement de remplacement en boucle
IQ Bot Custom Logic (Python): processus de remplacement efficace en boucle
Clé de base de logique personnalisée IQ Bot
Logique personnalisée IQ Bot: attribution de valeur fixe
Tri personnalisé en Python3
Évitez les boucles multiples en Python
Logique personnalisée IQ Bot: correction des habitudes de lecture courantes sur les dates
Logique personnalisée IQ Bot: supprimez les n dernières lignes du tableau
Logique gacha simple écrite en Python
Modèle d'espace d'états personnalisé en Python
Logique personnalisée IQ Bot: application fractionnée (appliquer à la table, inclure le contrôle des erreurs)
Développement de slack bot avec python en utilisant chat.postMessage
IQ Bot Custom Logic: 5 choses que vous pourriez être surpris quand quelqu'un qui parle une autre langue touche pour la première fois Python
Utilisez une page d'erreur personnalisée avec python / tornado
IQ Bot Custom Logic: Split (extrait uniquement les noms de banque et de succursale à partir des informations de compte)