将 Pandas 中的子字符串与字典键匹配并替换为字典值

4
假设我有以下的 dfd 。对于col中的每一行,我想检查是否存在与d中键匹配的项,并将col中的值替换为相应的项值,否则删除该行。(不能有多个匹配项)。
df = pd.DataFrame({'col': ['sdffzdhellojkh', 'fegky', 'ouewfzdworldqf']})

d = {'fzdhello': 'hello', 'fzdworld': 'world'}

在这种情况下,输出将如下所示:
df
    col
0   hello
1   world
2个回答

5

series.str.extract然后map:

df['col'].str.extract('('+ '|'.join(d.keys()) + ')',expand=False).map(d).dropna()

0    hello
2    world
Name: col, dtype: object

3
尝试提取和映射:
df['col'].str.extract('({})'.format('|'.join(d.keys())))[0].map(d).dropna()

输出:

0    hello
2    world
Name: 0, dtype: object

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接