<p>{cd1>使用^:</p>
<pre><code>df[['movie_title', 'year']] = df.title.str.extract('(.*)\s\((\d+)', expand=True)
</code></pre>
<h3>样本数据:</h3>
^{pr2}$
<p>输出:</p>
<pre><code> title movie_title year
0 Toy Story (1995) Toy Story 1995
1 Jumanji (1995) Jumanji 1995
2 Grumpier Old Men (1995) Grumpier Old Men 1995
3 Waiting to Exhale (1995) Waiting to Exhale 1995
4 Father of the Bride Part II (1995) Father of the Bride Part II 1995
5 Hello (Goodbye) (1995) Hello (Goodbye) 1995
</code></pre>
<hr/>
<p>我们使用的正则表达式是:<code>'(.*)\s\((\d+)'</code>。在</p>
<p>表达式的第一部分是:<code>(.*)</code>。括号表示它是一个捕获组,括号内的内容表示我们要捕获的内容。在本例中,<code>.*</code>表示我们贪婪地想要捕获所有东西。在capturing组之后,我们有<code>\s\(</code>,它的字面意思是后面跟着一个左括号的空格,所以<code>' ('</code>。因为在此之前的捕获组是贪婪的,如果有多个这样的匹配,我们将捕获直到最后<code>' ('</code>的所有内容。(例如,查看它如何正确地捕获<code>Hello (Goodbye) (1995)</code>。在</p>
<p>最后,我们添加第二个捕获组,其中<code>\d+</code>作为我们要捕获的内容,它捕获标题中最后一个<code>' ('</code>之后的所有数字,对我们来说,这将是4位数的年份。在</p>