<p>我们将<code>Series.str.extractall</code>与模式<code>numbers - space - letter</code>一起使用。然后我们检查<code>to_compare</code>中有哪些匹配项,最后我们使用<code>GroupBy.sum</code>来获得我们有多少个匹配项</p>
<pre><code>matches = df['Col'].str.extractall('(\d+\s\w+)')
df['matches'] = matches[0].isin(to_compare).groupby(level=0).sum()
Col matches
0 Halve the clementine and place into the cavity... 2.0
1 Add the stock, then bring to the boil and redu... 1.0
2 2 heaped teaspoons Chinese five-spice 0.0
3 100 ml Marsala 1.0
4 1 litre organic chicken stock 0.0
</code></pre>
<p>另外,<code>matches</code>返回:</p>
<pre><code> 0
match
0 0 1 hour
1 20 minutes
1 0 15 minutes
2 0 2 heaped
3 0 100 ml
4 0 1 litre
</code></pre>
<p>要在列表中获取这些信息,请使用:</p>
<pre><code>matches.groupby(level=0).agg(list)
0
0 [1 hour, 20 minutes]
1 [15 minutes]
2 [2 heaped]
3 [100 ml]
4 [1 litre]
</code></pre>