У меня есть следующий pandas фрейм данных:
pandas_dataframe = pd.DataFrame({'movie': ['Discreet Charm of the Bourgeoisie, The (Charme discret de la bourgeoisie, Le)',
'Attack Force Z (a.k.a. The Z Men) (Z-tzu te kung tui)',
'State of Things, The (Stand der Dinge, Der)',
'Happy Tour, A',
'Awfully Big Adventure, An',
'American President, The'],
'genre': ['Action', 'Comedy', 'Drama', 'Children', 'Action', 'Documentary']})
pandas_dataframe
Я хочу применить два преобразования:
- Удалить любой текст внутри скобок '(xxx)'
- Переместите слово «The» или «A» перед текстом, если это применимо (т.е. только в первом и третьем mov ie title)
Мой последний фрейм данных должен выглядеть так это:
+---------------------------------------+------------+
| movie | genre |
+---------------------------------------+------------+
| The Discreet Charm of the Bourgeoisie | Action |
| Attack Force Z | Comedy |
| The State of Things | Drama |
| A Happy Tour | Children |
| An Awfully Big Adventure | Action |
| The American President | Documentary|
+---------------------------------------+------------+
Я знаю, что для первого преобразования следует применить выражение регулярного выражения. Хотя, когда я пытаюсь сделать следующее:
exp = r'\([^]*\)'
pandas_dataframe['movie'] = pandas_dataframe['movie'].apply(lambda x: re.sub(exp,"",x).strip())
, я получаю эту ошибку: error: unterminated character set at position 2
В моем последнем редактировании я добавил еще несколько случаев фильмов со словами An, A для изменения положения . Прошу прощения за то, что не включил их в первую очередь.