擅长:python、mysql、java
<p>这就是我想到的</p>
<h3>解决方案</h3>
<pre><code>pat = r'({})'.format('|'.join(d.keys()))
extracted = df.n.str.extract(pat, expand=False).dropna()
df['multiple'] = extracted.apply(lambda x: d[x]).reindex(df.index).fillna(1)
</code></pre>
<h3>演示</h3>
<p>打印数据框</p>
^{pr2}$
<h3>说明</h3>
<p><code>pat</code>看起来像<code>r'(Croatia|Italy|Germany)'</code>,这是一个正则表达式,它与<code>()</code>中由<code>'|'</code>分隔的任何选项匹配。当在<code>str.extract</code>方法中使用时,它返回匹配的国家。然后运行<code>apply</code>来获取字典值。并不是所有的序列值都会被dict中的键匹配,所以我们必须<code>dropna</code>然后<code>fillna</code>稍后。在</p>