用dict键将pandas子字符串匹配并用dict值替换

时间:2020-08-26 15:10:19

标签: python pandas dataframe dictionary match

假设我下面有dfd。我想针对col中的每一行,检查是否与d中的项目关键字匹配,如果是,则用相应的项目值替换col中的值,否则放下那一行。 (最多只能有一场比赛。)

df = pd.DataFrame({'col': ['sdffzdhellojkh', 'fegky', 'ouewfzdworldqf']})

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

在这种情况下的输出如下:

df
    col
0   hello
1   world

2 个答案:

答案 0 :(得分:5)

series.str.extract然后映射:

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

0    hello
2    world
Name: col, dtype: object

答案 1 :(得分:3)

尝试提取并映射:

df['col'].str.extract('({})'.format('|'.join(d.keys())))[0].map(d).dropna()

输出:

0    hello
2    world
Name: 0, dtype: object
相关问题