擅长:python、mysql、java
<pre><code>test.type = (test.type.str.extract('(.*?\(.*?)-(.*?\))(.*)')
.sum(1)
.combine_first(test.type))
</code></pre>
<p><strong>说明:</strong></p>
<ul>
<li>提取<code>beginning until parenthesis and then hyphen</code>和<code>after hyphen until parenthesis and then optional additional stuff</code>的正则表达式组</li>
<li>用<code>sum</code>再次将它们连接在一起</li>
<li>其中,<code>NaN</code>,使用原始(<code>combine_first</code>)中的值</li>
</ul>
<p>这样,连字符将被删除,而不是替换为空格。如果需要空格,可以使用<code>apply</code>而不是sum:</p>
<pre><code>test.type = (test.type.str.extract('(.*?\(.*?)-(.*?\))(.*)')
.apply(lambda row: ' '.join(row.values.astype(str)), axis=1)
.combine_first(test.type))
</code></pre>
<p>无论哪种方式,这都不适用于多组括号</p>