尝试将字符串序列与有序字典进行比较,然后使用.lower().contains('word')
并提取字典的值
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'})
有序词典的重要性是因为有些词需要先搜索(比如Cower和Cow)
我正在尝试下面的方法,但不知道如何让它工作
df['b'] = df.a.map(lambda x: x.lower.contains(y) for y, z in od.items())
或者
df.a.apply(lambda x: x.lower().map(lambda x: x.contains(y) for y, z in od.items()))
预期产量:
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
这样做有效:
您需要明确定义比较:
希望有帮助
相关问题 更多 >
编程相关推荐