2017-10-19 3 views
0

Par exemple: Direction artistique: Eve Stewart; Décors: Evi ... Direction artistique: Luciana Arrighi; Décors ... Direction artistique: Rick Heinrichs; Set Décoration:Comment extraire une partie d'une phrase ou d'une chaîne en Python en utilisant des méthodes d'expression régulière et de bande

Je veux extraire le 2ème élément de la chaîne ci-dessus, "Eve Stewart" et créer une colonne de données séparée en tant que "Art Directors".

#Art Direction: Eve Stewart; Set Decoration: Ev... 
import re 
art=[ ] 

for row in before_2000["art_directors"]: 
    found = re.search("Art Direction:(.+); Set Decoration", row) 
    art.append(found) 
+0

Bienvenue dans StackOverflow. Veuillez lire et suivre les consignes de publication dans la documentation d'aide. [Exemple minimal, complet, vérifiable] (http://stackoverflow.com/help/mcve) s'applique ici. Nous ne pouvons pas vous aider efficacement tant que vous n'afficherez pas votre code MCVE et que vous ne décrivez pas précisément le problème. Nous devrions pouvoir coller votre code posté dans un fichier texte et reproduire le problème que vous avez décrit. Vous avez pris un bon départ. Terminez maintenant l'exemple et la description. – Prune

Répondre

0

Essayez le code suivant:

import re  
import pandas as pd 

string = "Art Direction: Eve Stewart; Set Decoration: Ev... Art 
Direction: Luciana Arrighi; Set Decoration... Art Direction: Rick 
Heinrichs;" 

pattern = "Art Direction:(.*?);" 

art_directors = re.findall(pattern, string) 
art_directors = [x.strip() for x in art_directors] 

df = pd.DataFrame({"Art Directors": art_directors}) 

D'abord, vous définissez les données de chaîne, vous définissez le modèle de regex que vous recherchez. Enfin, re.findall (pattern, string) trouve toutes les correspondances pour ce pattern dans les données de la chaîne. art_directors est une liste et vous pouvez ensuite la reformater en une base de données pandas. J'ai également supprimé les espaces entourant les valeurs de cellule.