如何解决用dict键将pandas子字符串匹配并用dict值替换
假设我下面有df
和d
。我想针对col
中的每一行,检查是否与d
中的项目关键字匹配,如果是,则用相应的项目值替换col
中的值,否则放下那一行。 (最多只能有一场比赛。)
df = pd.DataFrame({'col': ['sdffzdhellojkh','fegky','ouewfzdworldqf']})
d = {'fzdhello': 'hello','fzdworld': 'world'}
在这种情况下的输出如下:
df
col
0 hello
1 world
解决方法
series.str.extract然后映射:
df['col'].str.extract('('+ '|'.join(d.keys()) + ')',expand=False).map(d).dropna()
0 hello
2 world
Name: col,dtype: object
,
尝试提取并映射:
df['col'].str.extract('({})'.format('|'.join(d.keys())))[0].map(d).dropna()
输出:
0 hello
2 world
Name: 0,dtype: object
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。