<p>尝试将字符串序列与有序字典进行比较,然后使用<code>.lower().contains('word')</code>并提取字典的值</p>
<pre><code>import pandas as pd
from collections import OrderedDict
df = pd.DataFrame({'a':['Cow is good', 'pig is bad', 'Veggies are green', 'soda has sugar', 'the calf cowers']})
od = OrderedDict({'cower':'Cower',
'pig':'Pig',
'veg':'Vegetables',
'soda':'Soda',
'cow':'Cow'})
</code></pre>
<p>有序词典的重要性是因为有些词需要先搜索(比如Cower和Cow)</p>
<p>我正在尝试下面的方法,但不知道如何让它工作</p>
<pre><code>df['b'] = df.a.map(lambda x: x.lower.contains(y) for y, z in od.items())
</code></pre>
<p>或者</p>
<pre><code>df.a.apply(lambda x: x.lower().map(lambda x: x.contains(y) for y, z in od.items()))
</code></pre>
<p>预期产量:</p>
<pre><code> a b
0 Cow is good Cow
1 pig is bad Pig
2 Veggies are green Vegetables
3 soda has sugar Soda
4 the calf cowers Cower
</code></pre>