Python: Comment faire pour créer une table de correspondance, de correspondance de chaîne
J'ai besoin d'analyser chaque ligne d'un fichier csv et d'ajouter une nouvelle colonne par correspondance si une colonne correspond à un modèle. Par exemple, si columnA commence par la chaîne elephant
ensuite, je voudrais ajouter une nouvelle colonne intitulée Mammal
.
Ainsi, le fichier est comme
uid datetime description
1 2015-09-01 an elephant has trunks
2 2015-08-31 there are sharks in the sea
Donc, je recherche le description
colonne et ajouter une nouvelle colonne intitulée animal
qui permettra d'identifier le type d'animal que nous parlons. Ainsi, la nouvelle csv sera
uid datetime description animal
1 2015-09-01 an elephant has trunks mammal
2 2015-08-31 there are sharks in the sea fish
C'est plutôt un exemple simplifié, mais j'ai essentiellement besoin de créer une liste de choix pour le type d'animal et de la description.
Edit: j'ai ajouté un exemple de problème.
- Entendez-vous les différentes lignes de la même csv devrait avoir différentes colonnes? Ne serait-ce pas faire le csv ne sont pas valides structure?
- pas de. Je veux juste une nouvelle colonne basée sur la correspondance d'une colonne existante avec la recherche de dictionnaire. de la même colonne pour chaque ligne.
- Pouvez-vous expliquer votre cas avec un exemple?
- Je l'ai fait. L'espoir qui le rend plus clair.
- Qu'allez-vous faire avec la description, "la loutre de Rivière manger des moules et des coléoptères?"
- il nous suffit de regarder le premier, qui correspond à notre recherche et ont que la. donc, ce sera les loutres = mammifères.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez faire de votre table un dict.
Vous voudrez probablement ajouter des pluriels aussi.
Ensuite, vous avez juste besoin de diviser la description en mots, de chercher les mots dans votre dict, et de classer la description par le premier mot trouvé:
Noter que c'est une boucle
else
. Il doit être en retrait au même niveau que lefor
. Je n'aime pas vraiment la boucle elses, parce que si la boucle est longue, il est facile d'obtenir le retrait de mal, et que le bug peut être difficile à trouver, mais si la boucle est courte, comme dans l'exemple ci-dessus, ils sont géniaux. Si vous avez besoin de faire plus dans la boucle que j'ai montré, vous pouvez substituer une autre structure. (Aussi, les "bêtes" est évidemment un mauvais nom pour le dict. Pensez à un autre, s'il vous plaît.)