擅长:python、mysql、java
<p>一个选项是匹配可选的<code>\W</code>而不是<code>\b</code>,并强制开始和结束字符串:</p>
<pre><code>people = ["personone", "persontwo"]
pattern = r"^\W?({})\W?$".format("|".join(people))
s = df["person"].str.extract(pattern,expand=False)
df[s.notna()].groupby(['num',s])['cash'].sum()
</code></pre>
<p>输出:</p>
<pre><code>num person
1 personone 121
persontwo 81
Name: cash, dtype: int64
</code></pre>