擅长:python、mysql、java
<p>可以使用<code>pandas.Series.str.extract</code>为以下对象创建正则表达式:</p>
<pre><code>df["year"] = df["name"].str.extract(r"\((\d{4})\)$", expand=False)
df["year"] = pd.to_numeric(df["year"])
print(df.head())
gross name year
0 760507625.0 Avatar (2009) 2009
1 658672302.0 Titanic (1997) 1997
2 652270625.0 Jurassic World (2015) 2015
3 623357910.0 The Avengers (2012) 2012
4 534858444.0 The Dark Knight (2008) 2008
</code></pre>
<p>正则表达式:</p>
<ul>
<li><code>\(</code>:查找有文字括号的地方</li>
<li><code>(\d{4})</code>然后,找到4个相邻的数字
<ul>
<li>这里的括号表示我们将4个数字存储为一个捕获组(在本例中,它是我们要从较大的字符串中提取的数字组)</li>
</ul>
</li>
<li><code>\)</code>:然后,找到一个右括号</li>
<li><code>$</code>:以上所有内容都必须出现在字符串的末尾</li>
</ul>
<p>当满足上述所有条件时,获取这4位数字-或者如果没有获得匹配,则返回该行的NaN</p>