映射一个有序字典在一个系列中

2024-09-29 23:29:56 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试将字符串序列与有序字典进行比较,然后使用.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

Tags: lambdaimportdf字典islowerpdordereddict

热门问题