擅长:python、mysql、java
<h3>使用<code>str.extract</code>和<code>str.split</code>:</h3>
<ol>
<li>我们为<code>phone_number</code>提取模式<code>numbers dash numbers dash numbers</code></li>
<li>我们在模式<code>3 numbers followed by a space</code>上拆分,然后抓住它后面的部分<code>category</code>。我们为此使用<code>positive lookbehind</code>,这在regex中是<code>?<=</code></li>
</ol>
<pre><code>df['phone_number'] = df['address'].str.extract('(\d+-\d+-\d+)')
df['category'] = df['address'].str.split('(?<=\d{3})\s').str[-1]
</code></pre>
<p><strong>输出</strong></p>
<pre><code> address phone_number category
0 Arnie Morton's of Chicago 435 S. La Cienega Blvd. Los Angeles 310-246-1501 Steakhouses 310-246-1501 Steakhouses
1 Art's Deli 12224 Ventura Blvd. Studio City 818-762-1221 Delis 818-762-1221 Delis
2 Bel-Air Hotel 701 Stone Canyon Rd. Bel Air 310-472-1211 French Bistro 310-472-1211 French Bistro
</code></pre>