2017-05-24 5 views
0

Ich bin nie gekommen, um Regex bis jetzt zu lernen, aber ich versuche herauszufinden, wie man es in Pandas mit Series.str.match(expression) verwendet, um eine Spalte zu zwei neue Spalten zu teilen. (Ich weiß, ich kann dies tun, ohne reguläre Ausdrücke)Pandas regex geteilt auf Zeichen und Gruppe

Beispiele für die Spaltendaten sind:

True Grit { 'Rooster Cogburn'}

Die Rede des Königs { 'King George VI'}

Biutiful { 'Uxbal'}

Wo es in jeder der beiden Gruppen eine beliebige Anzahl von Strings größer als 1 sein kann. Wie kann ich zwei Gruppen extrahieren, um True Grit, Rooster Cogburn zu ergeben?

+0

können Sie buchen Sie Datensatz gewünscht? – MaxU

+1

Wenn Sie http://www.regexr.com nicht verwendet haben, ist es ein großartiges Werkzeug, um Regex schnell zu knallen. –

+0

Es ist die Spalte "Zusätzliche Informationen" dieses Datensatzes "csv": https://www.aggdata.com/awards/oscar – Austin

Antwort

3

dieses Datenrahmen gegeben

col 
0 True Grit {Rooster Cogburn} 
1 The King's Speech {King George VI} 
2 Biutiful {Uxbal} 

df = df.col.str.extract('(.*)\s*{(.*)}', expand = True) 

kehrt

0     1 
0 True Grit   Rooster Cogburn 
1 The King's Speech King George VI 
2 Biutiful   Uxbal 
+0

Perfekt und ersparte mir Schritte zum Hinzufügen/Entfernen von Spalten, danke! – Austin

+0

Froh, es hat funktioniert :) – Vaishali