擅长:python、mysql、java
<p>嘿,我不知道这个解决方案是否是最优的,但它是有效的。我刚才用8替换了点,用6替换了“(”,用9替换了“)”,不知道为什么这些字符被忽略了芬德尔街? 你知道吗</p>
<p>一种介于{8,6,9}和{.','(',')}之间的双射</p>
<pre><code>for i in range(len(Keywords)):
Keywords[i] = Keywords[i].replace('(','6').replace(')','9').replace('.','8')
for i in range(len(df['People'])):
df['People'][i] = df['People'][i].replace('(','6').replace(')','9').replace('.','8')
</code></pre>
<p>然后应用你的函数</p>
<pre><code> pat = '|'.join(r"\b{}\b".format(x) for x in Keywords)
df["found"] = df['People'].str.findall(pat).str.join('; ')
</code></pre>
<p>最后一步返回{“.”、“(”、“)}</p>
<pre><code>for i in range(len(df['found'])):
df['found'][i] = df['found'][i].replace('6','(').replace('9',')').replace('8','.')
df['People'][i] = df['People'][i].replace('6','(').replace('9',')').replace('8','.')
</code></pre>
<p>瞧</p>