擅长:python、mysql、java
<p>对于以下示例数据帧</p>
<pre><code>df = pd.DataFrame({"Test": ['E 18TH ST AND A AVE', 'E 31ST ST AND A AVE']})
</code></pre>
<pre><code> Test
0 E 18TH ST AND A AVE
1 E 31ST ST AND A AVE
</code></pre>
<p>这个</p>
<pre><code>df.Test = df.Test.str.replace(r'(\d+)(TH|ST)', lambda m: m.group(1), regex=True)
</code></pre>
<p>产生</p>
<pre><code> Test
0 E 18 ST AND A AVE
1 E 31 ST AND A AVE
</code></pre>
<p>这就是你要找的吗?查看<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.replace.html#pandas.Series.str.replace" rel="nofollow noreferrer">docs</a>了解更多详细信息</p>
<p><code>lambda</code>函数用作<code>repl</code>函数(“replace”),其返回的replace模式与字符串中的模式匹配。根据定义,它获取相应的<a href="https://docs.python.org/3.9/library/re.html#match-objects" rel="nofollow noreferrer">match object</a>作为参数,并且必须返回一个字符串,该字符串通常派生自match对象,但它可能完全不相关。这里的函数返回1的内容。通过<a href="https://docs.python.org/3.9/library/re.html#re.Match.group" rel="nofollow noreferrer">match object method ^{<cd3>}</a>捕获组:<code>(\d+)</code>-部分</p>