擅长:python、mysql、java
<p>使用一个<code>extract</code>调用。如果使用这个正则表达式,还需要从结果中去掉尾随空格。你知道吗</p>
<pre><code>df2 = (df['Col1'].str.extract(r'(?P<Name>.*?)(?P<Area>\d+(?:\.\d+)?)')
.applymap(str.strip))
df2
Name Area
0 APPLEGATE WINERY 455.292049
1 AMAND FARM 849.827192
2 COBB FARM ST 1039.49357
3 DIRIGIA 2048.947284
</code></pre>
<p><strong>正则表达式细分</p>
<pre><code>(?P<Name> # first named capture group - "Name"
.*? # match anything (non-greedy)
)
(?P<Area> # second named group - "Area"
\d+ # match one or more digits,
(?:
\. # decimal
\d+ # trailing digits
)? # the `?` indicates floating point is optional
)
</code></pre>
<p>PS,要将“Area”列转换为数字,请使用<code>pd.to_numeric</code>。你知道吗</p>