假设我下面有df
和d
。我想针对col
中的每一行,检查是否与d
中的项目关键字匹配,如果是,则用相应的项目值替换col
中的值,否则放下那一行。 (最多只能有一场比赛。)
df = pd.DataFrame({'col': ['sdffzdhellojkh', 'fegky', 'ouewfzdworldqf']})
d = {'fzdhello': 'hello', 'fzdworld': 'world'}
在这种情况下的输出如下:
df
col
0 hello
1 world
答案 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