from pandas import DataFrame,Series
import pandas as pd
df
text region
The Five College Region The Five College Region
South Hadley (Mount Holyoke College) South Hadley
Waltham (Bentley University), (Brandeis Univer..) Waltham
Die Region sollte aus text
extrahieren. Wenn die Zeile enthält "(", entfernen Sie alles nach "("), und entfernen Sie den Leerraum. Wenn die Zeile enthält nicht "(", behalten Sie es und kopieren Sie die Region. Ich weiß, ich kann damit umgehen mit str.extract
Funktion. Aber ich bin beunruhigt rechts RegexMusterExtract Strings von Dataframe
df['Region'] =df['text'].str.extract(r'(.+)\(.*')
Diese RegexMuster erste Saite nicht extrahieren kann ich erkenne auch, dass Split functon Verwendung für dieses Problem
str.split('(')[0]
Aber ich arbeitet Ich weiß nicht, wie ich das Ergebnis in eine Spalte schreiben sollIch hoffe, dass Sie Antworten zu beiden Methoden erhalten.
Könnten Sie bitte die RegexMuster "(? P [^ \ (] +) \ s * \ (*" helfen, erklären? Ich bin verwirrt darüber. –
@DingruiZhang '? P' ist eine Konvention, um die extrahierte Komponente zu benennen. Dies ergibt den Namen der extrahierten 'pd.Series'. '[^ (] +' ist ein oder mehrere Zeichen, die ** nicht ** 'sind ('. '\ s * (*' ist null oder mehr Leerzeichen gefolgt von null oder mehr '('. –
piRSquared